Java學習重點之一:OutputStream 字節輸出流的使用
FileOutPutStream:子類,寫出數據的通道
步驟:
1.獲取目標文件
2.創建通道(如果原來沒有目標文件,則會自動創建一個)
3.寫入數據 write()
4.釋放資源
注意:
(1)如果目標文件不存在,那麼會自己創建一個目標文件
(2)如果目標文件存在,先將裡面的數據清空,再寫入數據
(3)想在原有的數據上寫入數據,則在創建通道的時候使用 構造方法:
OutPutStream(File file,Boolean append),boolean值為true則可以
(4)用 write(int a)方法寫入數據,雖然接收的是int,但實際上只有一個字節的數據
(操作的是低八位的,其他的全部丟掉)
//會自動導入一些包 import java.io.File; import java.io.FileOutputStream; import java.io.IOException;
//方式一
1 public static void writeData() throws IOException{ 2 //1.找目標文件 3 File file = new File("C:\\Users\\bigerf\\Desktop\\文件夾\\writeTest.java"); 4 5 //2.創建一個通道 6 FileOutputStream outputStream = new FileOutputStream(file); 7 8 //3.開始寫入數據, 9 int a = 10; // int 型 4個字節 10 outputStream.write(a); //注意這裡每次只能輸出一個字節 11 outputStream.write('b'); // char 類型 12 outputStream.write(5); 13 14 // 0000-0000 0000-0000 0000-0001 1111-1111 == 511 15 int b = 511 ; //大於八位(9位) 16 outputStream.write(b); //實際結果 255,但沒有顯示 17 18 int c = 63; //小於八位(6位) 19 outputStream.write(c); //亂碼 20 21 //4.關閉資源 22 outputStream.close(); 23 }
//方式二
1 public static void writeData2() throws IOException{ 2 //1.找目標文件 3 File file = new File("C:\\Users\\bigerf\\Desktop\\文件夾\\writeTest2.java"); 4 5 //2.創建一個通道,(如果不存在路徑中的文件,則會在這一步創建的文件) 6 //new FileOutputStream(file,true); /true表示在原來文本的基礎上寫入文本(反之則會先清空再寫入) 7 FileOutputStream outputStream = new FileOutputStream(file,true); 8 9 //3.創鍵一個字節數組 10 String str = "hello word"; 11 //將字符串變為字節數組 12 byte[] b = str.getBytes(); 13 14 //4.寫入數據 15 outputStream.write(b); //hello word 16 17 //5.關閉資源 18 outputStream.close(); 19 20 }
陌陌說:
輸入流與輸出流可以實現對文件的拷貝,不妨試著實現
(先將路徑文件的數據拷貝寫入到字節數組,再從字節數組寫出道路徑文件)