2014-04-10 38 views
2

我剛纔寫的代碼很長的量,我試圖寫一個輸出文件與此代碼 -的Java文件輸出檢查

File outfile = new File ("output.txt"); 
PrintWriter outFile = new PrintWriter(outfile); 
outFile.printf("%-20s%5s%5s%5s%5s", f,median,avg,min,max); 
outFile.println(""); 
outFile.printf("%-20s%5s%5s%5s%5s", f,median,avg,min,max); 
outFile.println(""); 
outFile.printf("%-27s%5d%5d%5d%5d", firstplayer,P1median,P1avg,PScore.get(0),PScore.get(PScore.size()-1)); 
outFile.println(""); 
outFile.printf("%-27s%5d%5d%5d%5d", secondplayer,P2median,P2avg,Player2.get(0),Player2.get(Player2.size()-1)); 
outFile.println(""); 
outFile.printf("%-27s%5d%5d%5d%5d",fourthplayer,P4median,P4avg,Player4.get(0),Player4.get(Player4.size()-1)); 
outFile.close(); 

現在,當我沒有錯誤或異常拋出我相信我已經成功在寫一個輸出文件,但是我不知道它在哪裏,以及如何檢查它的內容。我很抱歉,如果這是一個不好的問題,但我很努力地在別處找到答案,所以任何幫助定位輸出文件或糾正我的錯誤,將不勝感激。

回答

1

這將打印出完整的文件路徑,如果您還是不確定它位於哪裏:

System.out.println(outfile.getAbsolutePath());

如果你想打印出來的文件的內容,所以你可以在你的程序檢查它:

//ensure content in file is updated 
outfile.flush(); 

BufferedReader br = null; 
try { 
    br = new BufferedReader(new FileReader(outfile)); 
    String line; 
    while ((line = br.readLine()) != null) { 
     System.out.println(line); 
    } 
} 
catch (IOException e) { 
    e.printStackTrace(); 
} 
finally { 
    try { 
     br.close(); 
    } 
    catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

確保關閉該文件。

+1

哇,這真棒謝謝你的提示! – Frankyo

+0

沒問題。 :)你還有什麼困惑嗎?如果其中一個答案解決了你的問題,你應該接受它!我添加了一個如何逐行打印內容的例子。 – Matthew

+0

謝謝!如果你不能說我對社區有點新鮮,所以我很感謝你的病人!現在我能夠找到它了,我只需要稍微調整格式,並且應該在途中!再次感謝!! – Frankyo

0

您應該關閉文件以確保一切正常。

outFile.close();

如果您希望這些結果隨時顯示在磁盤上,您也可以不時刷新。

outFile.flush();

此外,除了大小寫外,您不應該將兩個變量命名爲相同。致電您的文件,file和您的PrintWriter,writer

+0

我確實有outFile.close();但似乎錯過了它將代碼轉移。我會嘗試刷新方法並重命名我的變量謝謝! – Frankyo

0

我從書的「核心Java」的閱讀,這裏是另一種方式來找到你的文件目錄,

String dir=System.getProperty("user.dir"); 
System.out.println(dir); 

,並通過控制檯的目錄,你會發現你的文件「輸出.txt「