我有这样一段代码Java的临时文件,读取和写入
package Classes;
import java.io.*;
public class IpAdministrator {
public Boolean isActive(String ipAddress) {
boolean isActive = false;
String cmd;
String OS = System.getProperty("os.name");
System.out.println(OS);
String tmpfolder = System.getProperty("java.io.tmpdir");
System.out.println(tmpfolder);
//iptmp.deleteOnExit();
if (OS.equals("Linux")) {
cmd = "ping " + ipAddress + " -c 1";
} else {
cmd = "cmd /c ping " + ipAddress + " -n 1";
}
try {
String s = null;
Process p = Runtime.getRuntime().exec(cmd);
File iptmp = File.createTempFile("ipresult", ".txt", new File(tmpfolder));
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
s = s.toString();
BufferedWriter writer = new BufferedWriter(new FileWriter(iptmp));
writer.write(s);
}
} catch (Exception ex) {
System.out.println(ex.getMessage().toString());
}
return isActive;
}
}
我想写从临时文件中的命令的结果,我发现这个网站的其他问题有关的东西,它似乎工作正常,但是当我运行这个时,该文件是用一些随机数字(即:ipresult540677216848957037.txt)创建的,它是空的,我不明白为什么,我也读到它是与java 1.7相关的东西,所以那意味着我无法用信息填充文件,那里有我丢失的东西?
,我认为那是因为你没有调用writer.flush()或关闭的作家,所以内容在缓冲区中是stil。 – 2013-03-21 03:14:41
's = s.toString()'完全没有实现。 – EJP 2013-03-21 03:44:02