字節(jié)流抽象基類
- InputStream:這個(gè)抽象類是表示字節(jié)輸入流的所有類的超類
- OutputStream:這個(gè)抽象類是表示字節(jié)輸出流的所有類的超類
- 子類名特點(diǎn):子類名稱都是以其父類名作為子類名的后綴
字節(jié)流寫數(shù)據(jù)
FileOutputStream:文件輸出流用于將數(shù)據(jù)寫入File
- FileOutputStream(String name):創(chuàng)建文件輸出流以指定的名稱寫入文件
- 使用字節(jié)輸出流寫數(shù)據(jù)的流程
①創(chuàng)建字節(jié)輸出流對象(調(diào)用系統(tǒng)功能創(chuàng)建文件作岖,創(chuàng)建字節(jié)輸出流對象哈误,讓字節(jié)輸出流對象指向文件)
②調(diào)用字節(jié)輸出流對象的寫數(shù)據(jù)方法(write)
③釋放資源(close)(關(guān)閉此文件輸出流并釋放與此流相關(guān)聯(lián)的任何系統(tǒng)資源)
字節(jié)流寫數(shù)據(jù)的三種方式
方法名 | 說明 |
---|---|
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) | 將len字節(jié)從指定的字節(jié)數(shù)組開始,從偏移量off開始寫入此文件輸出流,一次寫一個(gè)字節(jié)數(shù)組的部分?jǐn)?shù)據(jù) |
String類的getBytes方法
byte[] getBytes()返回字符串對應(yīng)的字節(jié)數(shù)組。
字節(jié)流寫入數(shù)據(jù)的兩個(gè)小問題
- 字節(jié)流寫數(shù)據(jù)如何實(shí)現(xiàn)換行?
windows:\r\n
linux:\n
mac:\r
2.字節(jié)流如何實(shí)現(xiàn)追加寫入志群?
- 使用FileOutputStream的public FileOutputStream(String name,boolean append)構(gòu)造方法
- 創(chuàng)建文件輸出流以指定的名稱寫入文件。如果第二個(gè)參數(shù)為true蛔钙,則字節(jié)流將寫入文件的末尾而不是開頭赖舟。
字節(jié)流寫數(shù)據(jù)加異常處理
- finally:在異常處理時(shí)提供finally塊來執(zhí)行所有的清除操作,比如說IO流中釋放資源
- 格式
try{
可能出現(xiàn)異常的代碼
}catch{
異常的處理代碼
}finally{
執(zhí)行所有清除操作
}
字節(jié)流讀數(shù)據(jù)
FileInputStream:從文件系統(tǒng)中的文件獲取輸入字節(jié)
- FileInputStream(String name):通過打開與實(shí)際文件的連接創(chuàng)建一個(gè)FileInputStream夸楣,該文件由文件系統(tǒng)中的路徑名命名
字節(jié)流讀數(shù)據(jù)(一次讀取一字節(jié)數(shù)據(jù))
FileInputStream f1 = new FileInputStream("fileTest\\fos.txt");
int by;
while((by=f1.read())!=-1){
System.out.println((char)by);
}
字節(jié)流讀數(shù)據(jù)(一次讀取一字節(jié)數(shù)組的數(shù)據(jù))
FileInputStream f1 = new FileInputStream("fileTest\\fos.txt");
byte[] by = new byte[1024];//1024及其整數(shù)倍
int len;//實(shí)際讀取長度
while((len=f1.read(by))!=-1){
System.out.println(new String(by,0,len));
}
復(fù)制文本文件
- 思路
①根據(jù)數(shù)據(jù)源創(chuàng)建字節(jié)輸入流對象(FileInputStream)
②根據(jù)目的地創(chuàng)建字節(jié)輸出流對象(FileOutputStream)
③讀取數(shù)據(jù),復(fù)制文本文件(一次讀取一個(gè)字節(jié)子漩,一次寫入一個(gè)字節(jié))
④釋放資源