gpt4 book ai didi

java - 读取另一个进程正在写入的文件的最佳(影响最小?)方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 09:01:06 25 4
gpt4 key购买 nike

我正在寻找影响最小的方法来读取几个不同的日志文件。我所说的“影响最小”是指读取不会影响日志轮转,不会导致不当的 I/O Activity 等。我希望使用 Java 来完成此任务...

Google 为我提供了以下小代码片段:

FileStream fs = new FileStream("C:\foo.txt",
FileMode.Open,FileAccess.Read, FileShare.ReadWrite);

实现起来应该很失败,但是,我不太确定我的 Java“剪切和粘贴”能力,并且想知道是否有更好的方法来做到这一点。这里的大图是跟踪一些 apache 和 tomcat 日志,根据应用程序 Activity 查找一些关键条目,并根据该条目采取一些操作。无论如何,有什么建议吗?谢谢!

最佳答案

here中选择一个

:)

我还没有全部尝试过,但 Jon Skeet 对于如何不这样做有一些有用的评论。

我的赌注是 nio一个。

 FileInputStream stream = new FileInputStream(new File(path));
try {
FileChannel fc = stream.getChannel();
MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
/* Instead of using default, pass in a decoder. */
return CharSet.defaultCharset().decode(bb).toString();
}
finally {
stream.close();
}

查看该问题中的详细信息。

关于java - 读取另一个进程正在写入的文件的最佳(影响最小?)方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/438327/

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