gpt4 book ai didi

java - 从日志文件中读取 1 TB 的数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:35:23 25 4
gpt4 key购买 nike

如何在不耗尽机器内存的情况下读取两个大小为 1 TB 的日志文件。我将对它们进行一些比较。我想在 Java 中执行此操作。下面的代码工作?我担心的是 FileStream 无法保存日志文件的数据。

public static void main(String args[])
{
try{
// Open the file that is the first
// command line parameter
FileInputStream fstream = new FileInputStream("textfile.txt");
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
// Print the content on the console
System.out.println (strLine);
}
//Close the input stream
in.close();
}
catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}

任何人都可以指导我以正确的方式做到这一点。

最佳答案

您的代码可能会工作,因为您只是将每一行加载到内存中。不过,一旦读取的内容超过几百行,您就会丢失 stdout 缓冲区中的输出。

比较的最佳做法是将多个项目加载到一个集合中,然后在完成后丢弃不需要的项目。这将保持低内存使用率。如果您想聪明一点,请密切注意进程的内存使用情况,并在达到固定阈值时开始清除。

关于java - 从日志文件中读取 1 TB 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10919423/

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