知識點
1.通過FileOutputStream是將數據先轉化為二進制數據,然后再寫入到文本文件
2.BufferedWriter可以更加簡便的將數據寫入文本文件。
3.其中的true參數表示追加,無該參數表示覆蓋。
代碼
我們可以通過FileOutputStream基礎類將字符轉化為二進制,然后寫入到文件中
package cn.test.logan.day09; import java.io.FileOutputStream; public class FileOutputStreamDemo { public static void main(String[] args) throws Exception { /** * 使用FileOutputStream寫入文件 */ // 覆蓋的方式寫數據 FileOutputStream fos = new FileOutputStream("D:/demo.txt"); String s = "你好!123"; byte[] bytes = s.getBytes("utf-8"); fos.write(bytes); //關閉流 fos.close(); // 追加的方式寫數據(在FileOutputStream中添加true參數) FileOutputStream fos2 = new FileOutputStream("D:/demo.txt",true); String s2 = ",我在這里。"; byte[] bytes2 = s2.getBytes("utf-8"); fos2.write(bytes2); //關閉流 fos2.close(); } }
但是Java給我們提供了一個更加高級的BufferedWriter,通過這個工具類可以更簡單的實現數據寫入文件
package cn.test.logan.day09; import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.OutputStreamWriter; public class BufferedWriterDemo { public static void main(String[] args) throws Exception { /** * true參數表示追加,沒有該參數則表示覆蓋 * 在OutputStreamWriter中可以傳入編碼字符集 */ BufferedWriter bf = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:/out.dat",true),"utf-8")); bf.write("你好"); // 此處不添加關閉流,在文件中打開是看不到內容的 bf.close(); } }