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