java - java同时读写

标签 java file simultaneous

我正在开发java应用程序,我正在处理读取和 写入文件。但我想同时进行这个过程。作为我的文件 是我按一定时间间隔从中读取内容的日志文件 我使用了java.util.Timer。在这段时间里我正在尝试 在文件中写入一些内容,但这在我的中没有更新 日志文件。

我的计时器类是

public class Timer extends java.util.Timer {

 public void startTimer() {
  Timer t = new Timer();
  Task task = new Task();
  t.schedule(task, 0, 10000);
 }
}

我的类形式,其中文件读写类被称为

public class Task extends TimerTask {

 @Override
 public void run() {
  System.out.println("In task ....");
  try {
   SMSQuestions smsQuestions = new SMSQuestions();

   smsQuestions.sendSMSAnswer();
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
 }
}

我的文件读写类是

public void sendSMSAnswer()
    {
        long sender;
        String question;

        try {
            BufferedReader br = new BufferedReader(new FileReader("C:/temp/NowSMS/TEST.log"));
            String line = br.readLine();

            while (line != null) {
                sender = 0;
                question = "";
                System.out.println(line);
                line = br.readLine();
            }
            //To delete all contents in file
            BufferedWriter bw = new BufferedWriter(new FileWriter("C:/temp/NowSMS/TEST.log"));
            bw.write("");

            getDetails();

        }catch(Exception exp)
        {
            exp.printStackTrace();
        }
    }

我的问题是当我通过写入新内容来更新日志文件时 无法更新,所以我的问题是:java中是否可以同时读写文件?

最佳答案

我建议您查看随机访问文件(请参阅 http://docs.oracle.com/javase/tutorial/essential/io/rafs.html )。这个 API 使用起来有点复杂,因为您将读取字节而不是行,但它应该可以满足您的需要。

如果你不想与 NIO 打交道,你可以使用 http://docs.oracle.com/javase/7/docs/api/java/io/RandomAccessFile.html反而。

关于java - java同时读写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15758584/

相关文章:

java - 从资源文件夹加载字体文件

iOS:同时录制和播放的示例代码

ios - 2个同时具有不同方向的各种UIPanGestureRecognizers?

java - 将 Quarkus 和 Hibernate 与 db2/400 结合使用

java - 从 java 调用的 Powershell 脚本挂起

java - 在 Tomcat7 上安装应用程序

c - 坚持比较 C 中的字符串

c++ - 将逗号分隔的数据分配给 vector

javascript - 具有独立回调的同时 API 调用

java - 如何通过方法将对象转换为 int?