我有這樣一段代碼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