gpt4 book ai didi

java - 如何读取大文本文件并在 Java 中使用它

转载 作者:行者123 更新时间:2023-11-30 06:48:02 24 4
gpt4 key购买 nike

我有一个大文本文件,我想读取它,当我尝试在没有任何操作的情况下执行此操作,例如从该文件添加一些文本到列表,它读取文件最多一分钟,但是当我尝试向 arrayList 添加一些文本时接下来我想做一些操作,它太慢了,你知道我如何读取这些数据并使用它吗?这是我的代码:

public class ReaderTEst {
public static void main(String[] args) throws IOException {
List<String> graphList = new ArrayList<>();
List<String> edgeList = new ArrayList<>();
FileInputStream inputStream = null;
Scanner sc = null;
try {
inputStream = new FileInputStream("myText.txt");
sc = new Scanner(inputStream, "UTF-8");
while (sc.hasNextLine()) {
String line = sc.nextLine();
line = line.replace("\uFEFF", "");//i use UTF-8 file so I need delete unneeded character
if (Character.isWhitespace(line.charAt(0))) {
edgeList.add(line.trim());
} else {
graphList.add(line);
}
}
if (sc.ioException() != null) {
throw sc.ioException();
}
} finally {
if (inputStream != null) {
inputStream.close();
}
if (sc != null) {
sc.close();
}
}
}

}这需要很多时间,你知道怎样才能更快吗?我有 600 MB 的 txt 文件当我改变时:

List<Integer> graphList = new ArrayList<>(1);
int i = 0;
while (sc.hasNextLine()) {`String line = sc.nextLine();`
line = line.replace("\uFEFF", "");//i use UTF-8 file so I need delete unneeded character

graphList.add(i++);

}

我可以工作,但是当我想放置字符串时需要很长时间

最佳答案

您应该使用BufferedReader.readLine()。你可以用它每秒读取数百万行。 扫描仪对于你正在做的事情来说太过分了。

但是 \uFEFF 不是文本。这真的是一个文本文件吗?这是 BOM 标记吗?在这种情况下,它只会出现在第一行的开头:无需在每一行中扫描它。

关于java - 如何读取大文本文件并在 Java 中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43334303/

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