手表網(wǎng)站模板上百度推廣的網(wǎng)站要多少錢
IO流概述和分類
- IO流
- IO流的分類
- 字節(jié)流
- 字節(jié)流寫數(shù)據(jù)
- FileOutputStream
- 字節(jié)流寫數(shù)據(jù)的三種方式
- 字節(jié)流寫數(shù)據(jù)的兩個(gè)問(wèn)題
- 字節(jié)流寫數(shù)據(jù)加異常處理
IO流
IO:輸入輸出
流:一種抽象的概念,是對(duì)數(shù)據(jù)傳輸?shù)目偡Q,流的本質(zhì)就是數(shù)據(jù)傳輸
IO流的分類
-
按照數(shù)據(jù)的流向分為
輸入流 讀數(shù)據(jù) 輸出流 寫數(shù)據(jù) -
按照數(shù)據(jù)類型
字節(jié)流 | 字符流 |
---|---|
字節(jié)輸入/輸出流 | 字符輸入/輸出流 |
注意讀得懂的東西用字符流,都不懂的用字節(jié)流(用記事本打開)
不知道的情況下就用字節(jié)流
字節(jié)流
在java.io下
字節(jié)流的抽象基類
- InputStream:表示字節(jié)輸入流的所有類的超類
- OutputStream:表示字節(jié)輸出流的所有類的超類
子類名稱都是以父類名為后綴的
字節(jié)流寫數(shù)據(jù)
FileOutputStream
文件輸出流用于將數(shù)據(jù)寫入File
FileOutputStream(String name):創(chuàng)建文件輸出流,以指定名稱寫入文件
public class FileOutputStreamDemo1{public static void main(String[] args) throws IOException{//創(chuàng)建字節(jié)輸出流對(duì)象FileOutputStream fos=new FileOutputStream("myByteStream\\fos.txt");fos.write(97);//將指定字節(jié)寫入,97對(duì)應(yīng)的數(shù)據(jù)是afos.write(57);//寫入字符9//所有和io相關(guān)的操作最后都要釋放資源fos.close();}
}
字節(jié)流寫數(shù)據(jù)的三種方式
方法名 | 說(shuō)明 |
---|---|
void write(int b) | 將指定的字節(jié)寫入此文件輸出流 一次寫入一個(gè)字節(jié)數(shù)據(jù) |
void write(byte[] b) | 將b.length字節(jié)從指定的字節(jié)數(shù)組寫入此文件輸出流 一次寫入一個(gè)字節(jié)數(shù)組的數(shù)據(jù) |
void write(byte[] b,int off,int len) | 將len字節(jié)從指定的字節(jié)數(shù)組開始,從偏移量off開始寫入此文件輸出流 一次寫一個(gè)字節(jié)數(shù)據(jù)的部分?jǐn)?shù)據(jù) |
字節(jié)流寫數(shù)據(jù)的兩個(gè)問(wèn)題
- 如何換行?
寫入’\n’
但是windows的記事本不識(shí)別
windows:\r\n
linux:\n
mac:\r - 如何追加寫入?
FileOutputStream fos=new FileOutputstream(String name,boolean true) 第二個(gè)參數(shù)為True則是追加
字節(jié)流寫數(shù)據(jù)加異常處理
public class FileOutputStreamDemo1{public static void main(String[] args) {try{//創(chuàng)建字節(jié)輸出流對(duì)象FileOutputStream fos=new FileOutputStream("myByteStream\\fos.txt");fos.write("Hello".getBytes());//所有和io相關(guān)的操作最后都要釋放資源fos.close();}catch(IOException e){e.printStackTrace();}}
}
finally在異常處理時(shí)提供的finally塊來(lái)執(zhí)行所有的清除操作。如IO種的釋放資源
特點(diǎn)被finally控制的語(yǔ)句一定會(huì)執(zhí)行,除非JVM退出
try{//可能出現(xiàn)異常的代碼}catch(異常類名 變量名){//異常處理代碼}finally{//執(zhí)行所有清除操作}