我正在开发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/