所以我想检查文件是否包含数据。我的程序是多线程的,所以它不会工作,因为文件不能同时访问并且也会出错,是否可以将它加载到字符串数组并检查该数组是否包含我想要的文本? / p>
如果我在同一时间从5-10个不同的线程检查它是否重要?
如何在同一时间从所有这些线程中将文本写入文件,但它应该看起来是否正在使用并等待然后写入,这样就不会记录错误。
答案 0 :(得分:0)
...是否可以将其加载到字符串数组并检查该数组是否包含我想要的文本?
是。将文件读入字符串数组并检查数组中的某个字符串是否包含另一个字符串是直接编程。
如果我在同一时间从5-10个不同的线程检查它是否重要?
是的,这很重要。您必须以正确的方式实现代码,以确保它始终有效。
您的问题很难破译,但我猜您希望在线程之间共享字符串数组,并且您希望线程更新数组。在这种情况下,正确的同步是必不可少的,否则你可能会遇到竞争条件和记忆异常。
如何同时从所有这些线程向文件写入文本,但它应该看起来是否正在使用并等待然后写入,因此不会记录错误。
您需要正确同步,以便一次只有一个线程尝试写入文件。此外,您需要确保一个线程不会尝试打开文件流,而另一个文件打开该文件。 (这很可能是导致当前错误的原因.Windows上的Java不会让你这样做......虽然Linux上的Java会允许它。)
我建议您阅读有关如何编写多线程程序的Oracle Java教程。