0
我編寫了一個程序,該程序通過填充零來創建任何所需大小的文件。我試圖通過每隔幾秒刷新一次(讓5秒鐘)而不是每個循環來優化它。當我嘗試使用計時器時,代碼output.flush();
給了我一個錯誤。如何在計時器上執行命令
public static void main(String[] args) throws IOException
{
fileMaker fp = new fileMaker();
Writer output = null;
File f = new File(args[1]);
output = new BufferedWriter(new FileWriter(f, true));
output.write("0");
long size = fp.getFileSize(args[1]);
long mem = Long.parseLong(args[0]) * 1073741824; //1 Gigabyte = 1073741824 bytes
while (size < mem)
{
output.write("");
TimerTask fileProcessTask = new TimerTask()
{
@Override
public void run()
{
output.flush();
processFile();
}
};
Timer tm = new Timer();
tm.schedule(fileProcessTask, 5000L);
size = fp.getFileSize(args[1]);
double avg = (double) size/mem * 100;
System.out.println(avg + "% complete");
}
output.close();
System.out.println("Finished at " + size/1073741824 + " Gigabyte(s)");
}
什麼類型的定時器?這是一個搖擺計時器嗎? – 2013-03-25 15:38:14
@Legend我將使用我試過的計時器代碼編輯我的OP – user2007843 2013-03-25 15:39:50
嘗試在動作偵聽器實現中使用一個swing計時器。 – 2013-03-25 15:41:55