gpt4 book ai didi

java - 无法将 txt 文件复制到 arraylist 并复制到文件中

转载 作者:行者123 更新时间:2023-12-01 19:34:52 25 4
gpt4 key购买 nike

我正在尝试将这个大的 txt 文件添加到数组列表中,然后对数据进行排序。然后将 15000 行放入各种临时文件中。我无法将数据放入每个文件中。这是我的代码:

package bigfilesorter2;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class bigfilesorter2 {

public static final int NUM_LINES = 15000;

public static void main(String args[]) throws IOException {



FileReader fileReader = new FileReader("Aesop_Shakespeare_Shelley_Twain.txt");
BufferedReader br = new BufferedReader(fileReader);

ArrayList<String> arraylist = readingfile(br);

//System.out.println(arraylist);
makingfiles(br, arraylist);

}

public static void makingfiles(BufferedReader br, ArrayList<String> arraylist) throws IOException {
int start = 0;
int end = 15000;

for(int i = 0; i < 20; i++) {
File file = new File("/Users/domlanza/desktop/testing/Filee"+i+".txt");
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
for(;start <= end; start++){
bw.write(arraylist.get(start));
bw.newLine();
}
bw.flush();
bw.close();
fw.close();
start = end + 1;
end += 15000;
}
}

public static ArrayList<String> readingfile(BufferedReader br) throws FileNotFoundException, IOException {
//Read in file

Scanner s = new Scanner(new File("Aesop_Shakespeare_Shelley_Twain.txt"));
int count = 0;
ArrayList<String> arraylist = new ArrayList<String>();

while (s.hasNext()) {
count++;
arraylist.add(s.nextLine());

}




//} catch (IOException e) {e.printStackTrace();}
Collections.sort(arraylist);
//System.out.println(arraylist);
return arraylist;
}
}

如有任何帮助,我们将不胜感激。逗号只是正在排序的文件......................

“看起来你的帖子主要是代码”

最佳答案

您需要创建一个子列表列表,其中每个子列表包含 15000 行。完整代码如下:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;

public class BigFileSorter {

public static final int NUM_LINES = 15000;
public static final int NUM_FILES = 20;
public static void main(String args[]) throws IOException {

FileReader fileReader = new FileReader("file.txt");
BufferedReader br = new BufferedReader(fileReader);

ArrayList<ArrayList<String>> list = readingfile(br);
makingfiles(br, list);

}

public static void makingfiles(BufferedReader br, ArrayList<ArrayList<String>> list) throws IOException {
if (list != null) {
for (int i = 0; i < NUM_FILES; i++) {
File file = new File("Filee" + i + ".txt");
FileWriter fw = new FileWriter(file);
ArrayList<String> subList = list.get(i);
for (String str : subList) {
fw.write(str + System.lineSeparator());
}
fw.close();
}
}
}

public static ArrayList<ArrayList<String>> readingfile(BufferedReader br)
throws FileNotFoundException, IOException {
ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
ArrayList<String> subList;
String line;
try {
for (int i = 0; i < NUM_FILES; i++) {
subList = new ArrayList<String>();
for (int j = 0; j < NUM_LINES; j++) {
line = br.readLine();
if (line == null) {
break;
}
subList.add(line);
}
Collections.sort(subList);
list.add(subList);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
br.close();
}
return list;
}
}

如有任何疑问,请随时发表评论。

关于java - 无法将 txt 文件复制到 arraylist 并复制到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59230697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com