在java中同时处理写和读

在java中同时处理写和读,java,file-io,Java,File Io,我有一个线程将持续登录到一个文件。我有一个函数getLines(),调用该函数时将返回日志文件的最后100行 我的问题是在getLines()中实现一个简单的BufferedReader是否足够?我主要关心的是在写的时候阅读是否有效。我不介意在阅读过程中遗漏几行代码 谢谢,因为Java FileOutputStream/FileInputStream在共享模式下打开文件读取不会干扰写入。尽管在我看来,实现一个记录最后100行并按需返回的记录器会更好、更高效。您可能会遇到一些并发性问题。阅读和写作

我有一个线程将持续登录到一个文件。我有一个函数
getLines()
,调用该函数时将返回日志文件的最后100行

我的问题是在
getLines()
中实现一个简单的BufferedReader是否足够?我主要关心的是在写的时候阅读是否有效。我不介意在阅读过程中遗漏几行代码


谢谢,因为Java FileOutputStream/FileInputStream在共享模式下打开文件读取不会干扰写入。尽管在我看来,实现一个记录最后100行并按需返回的记录器会更好、更高效。

您可能会遇到一些并发性问题。阅读和写作真的必须同时发生吗?您可以在读/写时锁定文件,并且在给定时间只执行一个操作。另一个选项是实现一个缓冲区,其中包含将按插入顺序执行的操作。您是否使用任何日志框架?日志框架可以帮助您实现用例。没有使用框架。为什么您有一个方法返回写入日志的最后100行?读取自己的日志文件或其他应用程序的日志文件的应用程序出现严重问题。也许应该把一些东西放到数据库里?