我試圖製作一個控制檯應用程序,用於創建文件並向其中寫入文本。我在這裏做錯了什麼?如何寫入文件
如何寫入文件
回答
這是完全非法
FileWriter fw = FileWriter;
你可能想這
BufferedWriter Text = new BufferedWriter(new FileWriter(file));
你有一個不必要的代碼塊
{ }
你的代碼會拋出
IOExcpeption
,所以你有兩個選擇。無論是public static void main(String[] args) throws IOException { }
或者
try { BufferedWriter Text = new BufferedWriter(new FileWriter(file)); .... Text.write(inputText); Text.close(); } catch (IOException ex) { ex.printStackTrace(); }
首先,讓我們的FileWriter FW開始。 fw應該是一個FileWriter對象,因此您需要創建一個FileWriter對象。
FileWriter fw = new FileWriter(file);
現在,請注意您可能要更具體,因此是值得一試的FileWriter API
而且不同的構造函數,文字不會拋出和異常,它可能會拋出異常(說它會拋出一個異常,說你的代碼總是會失敗,並且在這種情況下,異常處理是「補丁」它 所以我建議添加一個catch子句,但是要記住,你必須總是自己關閉編寫器(Java除非另有規定,否則不這樣做),因此,您需要try with resource
try (FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw)){
....
writer.write(inputText);
} catch (IOException ex) {
ex.printStackTrace();
}
,或者添加一個finally從句
FileWriter fw = new FileWriter(file);
BufferedWriter writer = new BufferedWriter(fw);
try {
....
writer.write(inputText);
} catch (IOException ex) {
ex.printStackTrace();
} finally{
writer.close();
fw.close();
}
因爲垃圾收集器不會關閉流,如果異常裏面拋出的嘗試,那麼它不會達到接近()命令,而是去捕捉(然後最終),而不關閉流。
正如其他人所說。不知道你究竟想要完成什麼,就很難知道所有錯誤的東西。
再次,作爲PopoFibo提到,這可能代表了大多數,似乎是語法不正確的事情是:
FileWriter fw = FileWriter;
因此而不是列出什麼可能是錯誤的,這裏有一個例子可以幫助你。
在第一行中,您可以在控制檯中輸入您指定的文件名 - 就像您似乎想要做的那樣。
您輸入到控制檯的每個後續行都寫入該文件。輸入空行將終止輸入。
public class Program {
public static void main(String[] args) {
System.out.println("Enter file name:");
Scanner input = new Scanner(System.in);
String fileName = null;
while (fileName == null) {
if (input.hasNextLine()) {
fileName = input.nextLine();
}
}
try {
FileWriter fw = new FileWriter(fileName);
String newLine = System.getProperty("line.separator");
System.out.println("Enter lines (enter empty line to terminate):");
String line = null;
while (true) {
if (input.hasNextLine()) {
line = input.nextLine();
if (isTerminatingEntry(line)) {
break;
}
fw.write(line + newLine);
}
}
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
input.close();
}
private static boolean isTerminatingEntry(String line) {
// add some condition that will cause you to stop reading input
// in this example, empty line will terminate the input
return line.length() == 0;
}
}
我不知道如何回答編輯,但Elayeek編輯的內容不正確,因爲'finally中的'fw.close()'沒有它自己的try/catch不會編譯。我把'fw.close()'放在嘗試結束的地方來簡化事情,並且假設'FileWriter fw = new FileWriter(fileName)'之後不會有例外,直到try塊結束。如果我需要更健壯的東西,我可能會像[this](http://stackoverflow.com/a/2699270/520229)或像[this](http://stackoverflow.com/a/2699273/520229) 。 – mrzli
- 1. 如何寫入plist文件?
- 2. 如何寫入C#文件
- 3. AIR - 如何寫入文件
- 4. PHP - 如何寫入文件?
- 5. 如何寫入文件C
- 6. OCaml如何寫入文件?
- 7. 如何將文件寫入文件?
- 8. 如何通過使用Vbscript寫入和寫入文本文件
- 9. 如何寫入文本文件
- 10. 如何寫入多行文本文件?
- 11. 如何寫入文本文件Java
- 12. 如何將文本寫入XML文件?
- 13. 如何將Jsonresult寫入文本文件?
- 14. 如何將文本寫入log4net文件
- 15. 如何讓BufferedWriter寫入文本文件?
- 16. 如何將ArrayList寫入文本文件?
- 17. 如何寫入文本文件
- 18. 如何使用導入從文件寫入另一個文件?
- 19. 寫入文件
- 20. 寫入文件
- 21. 寫入文件
- 22. 寫入文件
- 23. 寫入文件
- 24. 寫入文件
- 25. 寫入文件?
- 26. 你如何寫入緩衝區,然後寫入文件
- 27. 如何在使用Python寫入文件時寫入新行?
- 28. 如何在內存中寫入文件或在Lambda aws中寫入文件?
- 29. 如何讀取和寫入文件
- 30. 如何寫入日誌文件?
問題是什麼? – Kick
該代碼甚至不會編譯。順便說一句,你沒有關閉文件。 – m0skit0
其中之一,你需要拋出一個'IOException'或'try/catch'你的文件訪問代碼。 –