FileOutPutStream:子類,寫出數(shù)據(jù)的通道
步驟:
1.獲取目標(biāo)文件
2.創(chuàng)建通道(如果原來沒有目標(biāo)文件,則會自動創(chuàng)建一個)
3.寫入數(shù)據(jù) write()
4.釋放資源
注意:
?。?)如果目標(biāo)文件不存在,那么會自己創(chuàng)建一個目標(biāo)文件
(2)如果目標(biāo)文件存在,先將里面的數(shù)據(jù)清空,再寫入數(shù)據(jù)
?。?)想在原有的數(shù)據(jù)上寫入數(shù)據(jù),則在創(chuàng)建通道的時候使用 構(gòu)造方法:
OutPutStream(File file,Boolean append),boolean值為true則可以
?。?)用 write(int a)方法寫入數(shù)據(jù),雖然接收的是int,但實際上只有一個字節(jié)的數(shù)據(jù)
(操作的是低八位的,其他的全部丟掉)
1
2
3
4
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
//方式一 public static void writeData() throws IOException{ //1.找目標(biāo)文件 File file = new File( "C:\\Users\\bigerf\\Desktop\\文件夾\\writeTest.java" ); //2.創(chuàng)建一個通道 FileOutputStream outputStream = new FileOutputStream(file); //3.開始寫入數(shù)據(jù), int a = 10 ; // int 型 4個字節(jié) outputStream.write(a); //注意這里每次只能輸出一個字節(jié) outputStream.write( 'b' ); // char 類型 outputStream.write( 5 ); // 0000-0000 0000-0000 0000-0001 1111-1111 == 511 int b = 511 ; //大于八位(9位) outputStream.write(b); //實際結(jié)果 255,但沒有顯示 int c = 63 ; //小于八位(6位) outputStream.write(c); //亂碼 //4.關(guān)閉資源 outputStream.close(); } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
//方式二 public static void writeData2() throws IOException{ //1.找目標(biāo)文件 File file = new File( "C:\\Users\\bigerf\\Desktop\\文件夾\\writeTest2.java" ); //2.創(chuàng)建一個通道,(如果不存在路徑中的文件,則會在這一步創(chuàng)建的文件) //new FileOutputStream(file,true); /true表示在原來文本的基礎(chǔ)上寫入文本(反之則會先清空再寫入) FileOutputStream outputStream = new FileOutputStream(file, true ); //3.創(chuàng)鍵一個字節(jié)數(shù)組 String str = "hello word" ; //將字符串變?yōu)樽止?jié)數(shù)組 byte [] b = str.getBytes(); //4.寫入數(shù)據(jù) outputStream.write(b); //hello word //5.關(guān)閉資源 outputStream.close(); } |
陌陌說:
輸入流與輸出流可以實現(xiàn)對文件的拷貝,不妨試著實現(xiàn)
?。ㄏ葘⒙窂轿募臄?shù)據(jù)拷貝寫入到字節(jié)數(shù)組,再從字節(jié)數(shù)組寫出道路徑文件)
原文鏈接:http://www.cnblogs.com/bigerf/archive/2016/12/06/6137171.html