[英]Cannot write into a file in java as it is printing using System.out.println
File output=new File("C:\\\\MDU-1617-CSJ0098\\\\web\\\\products.txt");
BufferedWriter writer1 = new BufferedWriter(new FileWriter(output));
while(q_set2.next()) {
String s = String.valueOf(q_set2.getInt(1));
System.out.print(s);
writer1.write(s);
writer1.newLine();
}
並且運行輸出:123456BUILD SUCCESSFUL(總時間:0秒)
但是文件中沒有數據
這是write
方法的作用:
通常,此方法將給定數組中的字符存儲到此流的緩沖區中,並根據需要將緩沖區刷新到基礎流。
因此,它寫入buffer
而不是直接寫入文件。 要使緩沖區flush
,您需要調用flush
或close
方法,例如:
File output = new File("C:\\\\MDU-1617-CSJ0098\\\\web\\\\products.txt");
BufferedWriter writer1 = new BufferedWriter(new FileWriter(output));
while (q_set2.next()) {
String s = String.valueOf(q_set2.getInt(1));
System.out.print(s);
writer1.write(s);
writer1.newLine();
}
writer1.close();
close()
內部調用flush()
,因此,在這種情況下,您無需顯式調用flush()
(這是Javadoc )。
調用writer1.write(s)
,實際上並沒有在文件中打印任何內容,而是將數據收集到內存中。 收集完所有數據后,您可以通過調用flush()
將所有數據一次性寫入文件中。
這是因為寫入文件是一項昂貴的操作,因此BufferedWriter
的設計方式使它便於一次寫入所有數據,而不是分塊寫入。
這就是為什么您需要沖洗流。
公共無效flush()引發IOException
沖洗流。
現在,您可以...
flush()
方法或 flush()
方法。 。
File output=new File("C:\\\\MDU-1617-CSJ0098\\\\web\\\\products.txt");
BufferedWriter writer1 = new BufferedWriter(new FileWriter(output));
while(q_set2.next()) {
String s=String.valueOf(q_set2.getInt(1));
System.out.print(s);
writer1.write(s);
writer1.newLine();
}
writer1.flush(); // or writer1.close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.