【发布时间】:2014-12-23 07:57:04
【问题描述】:
我尝试使用 java 读写文件。我已经尝试了我的代码,但它不能正常工作。
下面是我的代码:
import java.util.*;
import java.io.*;
public class UptimeSample {
public static void main(String[] args) {
try
{
double oldTime=0;
BufferedReader read=new BufferedReader(new FileReader("C:/eGurkha/agent/sample/UptimeRecord.txt"));
String oldline=read.readLine();
if(oldline == null)
{
System.out.println("New Entry ::::");
Process p=Runtime.getRuntime().exec("C:\\eGurkha\\lib\\vmgfiles\\win\\VmgUptimeTest.exe");
BufferedReader rd=new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=rd.readLine();
System.out.println(line);
String[] word=line.split("=");
FileWriter fileWriter=new FileWriter("C:/eGurkha/agent/sample/UptimeRecord.txt");
fileWriter.write(word[1]);
System.out.println("New System Time is :"+word[1]);
System.out.println("String Written");
}
else
{
oldTime=Double.parseDouble(oldline);
Process p=Runtime.getRuntime().exec("C:\\eGurkha\\lib\\vmgfiles\\win\\VmgUptimeTest.exe");
BufferedReader rd=new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=rd.readLine();
String[] word=line.split("=");
FileWriter fileWriter=new FileWriter("C:/eGurkha/agent/sample/UptimeRecord.txt");
fileWriter.write(word[1]);
System.out.println("New System Time is :"+word[1]);
System.out.println("String Written");
double crrTime=Double.parseDouble(word[1]);
double diffTime=crrTime-oldTime;
System.out.println("Difference Time is :"+diffTime);
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
它给出以下输出:
New Entry ::::
System=13042.827175
New System Time is :13042.827175
String Written
输出是正确的,但问题是当我打开“UptimeRecord.txt”文件时,该文件是空的。我无法写入该文件。
【问题讨论】:
-
使用
line.split("\\="),最后使用filewrite.close() -
我建议在 finally 块中关闭文件写入器,并从 if-else 块中取出公共代码。
标签: java