java基礎(chǔ)入門之IO流
io學(xué)習(xí)框架:
文件:
保存數(shù)據(jù)的地方。
1)常見文件對象的相關(guān)構(gòu)造器和方法:
當(dāng)進(jìn)行File file = new File(filePath);只是在內(nèi)存上有一個文件對象;
只有file.createNewFile();才會在磁盤創(chuàng)建文件
獲取文件的相關(guān)信息:
utf8中,一個漢字是三個字節(jié),所以當(dāng)用字節(jié)流的read()方法一個字節(jié)一個字節(jié)的讀取的時候,將會出現(xiàn)亂碼的情況
2)目錄的刪除和增加:
a)用來刪除文件或者文件夾
b)文件夾的創(chuàng)建:
Io流的原理:
流的分類:
字節(jié)流適用于聲音等文件的傳輸,因為字節(jié)流是一個字節(jié)一個字節(jié)的讀取,可以保證無損;
字符流雖然讀取的效率高些,但更適用于文本的讀取;
注意:inpuStream,OutputStream,Reader,Writer全是抽象類,創(chuàng)建對象時候要實現(xiàn)他們的子類即可。
1)InputSream輸入流:
字節(jié)輸入流:文件–》程序
a)fileInputStream.read()一個一個字節(jié)讀取
(注意:輸出的時候不能像如圖框選的那樣輸出,因為read()讀取的是下一個字符了)
b)改進(jìn),使用fileInputStream.read(buffer)
2)OutputStream
注意:如果使用OutputStream寫入數(shù)據(jù)時候,文件不存在將自動進(jìn)行文件的創(chuàng)建;
以下是寫入數(shù)據(jù)的幾種方式,
當(dāng)使用紅框的語句的時候,寫入數(shù)據(jù)會追加在文件中;
否則,將覆蓋文件的內(nèi)容
完成文件的拷貝:(需要輸入流和輸出流的綜合應(yīng)用)
3)FileReader:
1)FileReader的使用:
4) FileWriter:
使用filewriter后,必須關(guān)閉(close)或者刷新(flush),否則寫入不到指定文件
a)FileWriter的使用:
使用filewriter后,必須關(guān)閉(close)或者刷新(flush),否則寫入不到指定文件
close()相當(dāng)于flush()+關(guān)閉
節(jié)點流和處理流:
1)節(jié)點流:直接讀取數(shù)據(jù)源的流
2)處理流:對節(jié)點流進(jìn)行包裝
例如BufferReader:
readLine()是按行讀?。?br />
當(dāng)返回null時候,表示文件讀取完畢;
關(guān)閉流的時候,這里只需要關(guān)閉BufferReader,因為底層會自動去關(guān)閉節(jié)點流;
BufferWriter:
注意:如果需要追加在文件的話,是在節(jié)點流進(jìn)行設(shè)置;
newLine()插入一個換行符
兩者的區(qū)別與聯(lián)系:
BufferReader和BufferWriter實現(xiàn)文件拷貝:
注意:BufferReader和BufferWriter是安裝字符操作;
不要操作二進(jìn)制文件(聲音,視頻,doc,pdf,等等),可能會造成文件損壞
處理字節(jié)的處理流:
BufferedOutputStream和BufferedInputStream實現(xiàn)拷貝圖片:
當(dāng)然,除此之外,BufferedOutputStream和BufferedInputStream也可以實現(xiàn)文本的拷貝;
對象處理流:專門處理對象的流,專門把對象保存到文件中,并且能夠從文件中恢復(fù);
序列化:就是保存數(shù)據(jù)的時候,保存數(shù)據(jù)的值和數(shù)據(jù)類型;
標(biāo)記接口:沒有任何方法
1)ObjectInputStream:(也是包裝流)
示例:
2)ObjectOutputStream:
示例:
序列化之后,保存的文件格式,不是純文本,而是按照他的格式來存儲
當(dāng)反序列化的時候需要用到getName();toString()等方法的時候,序列化也要一并把這些方法存儲進(jìn)行;
對象流注意事項:
標(biāo)準(zhǔn)輸入和輸出:
標(biāo)準(zhǔn)輸入,從鍵盤是獲?。篠canner scanner = new Sanner(System.in);
轉(zhuǎn)換流:
InputStreamReader:字節(jié)流轉(zhuǎn)化(包裝)為字符流;
1)**OutputStreamReader:**字節(jié)流轉(zhuǎn)化(包裝)為字符流;
打印流:
(只有輸出流,沒有輸入流)
PrintStream和PrintWriter(可以把信息打印到文件里面)
1)PrintStream
2)PrintWriter
PrintWriter可以傳入一個輸出流,這里System.out是標(biāo)準(zhǔn)輸出
Properties類:
1)傳統(tǒng)的處理方法(使用處理流加載配置文件),不方便:
2)Properties方式:
總結(jié)
這篇文章就到這里了,希望大家能夠喜歡,也希望大家能夠多多關(guān)注腳本之家其他文章!
相關(guān)文章
java讀取配置文件自定義字段(yml、properties)
本文主要介紹了java讀取配置文件自定義字段(yml、properties),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07java并發(fā)學(xué)習(xí)之Executor源碼解析
這篇文章主要為大家介紹了java并發(fā)學(xué)習(xí)之Executor源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07基于Jenkins自動打包并部署docker環(huán)境的操作過程
這篇文章主要介紹了基于Jenkins自動打包并部署docker環(huán)境,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08