Java學習總結 轉換流和流的操作總結

2021-07-03 23:46:38 字數 3335 閱讀 4808

如何實現讀取鍵盤錄入?

system.out:對應的是標準輸出裝置,控制台

system.in:對應的標準輸入裝置,鍵盤

**:

inputstream in=system.in;

int by=in.read();

system.out.println(by);

結束錄入

in.close();

轉換流

讀取轉換流:inputstreamreader

寫入轉換流:outputstreamreader

讀取轉換流:inputstreamreader 位元組流通向字元流的橋梁

步驟1.獲取鍵盤錄入物件

inputstream in=system.in

2.將位元組流物件轉換成字元流物件,使用轉換流inputstreamreader

inputstreamreader isr=new inputstreamreader(in);

3.提高效率使用字元流緩衝區 bufferedreader進行讀取

bufferedreader bf=new bufferedreader(is);

string line=null;

while((line=bf.readline())!=null)

bufr.close;

寫入轉換流:outputstreamreader 字元流通向位元組流的橋梁

步驟1.獲取輸出物件

outputstream out=system.out

2.將字元流物件轉換成位元組流物件,使用轉換流outputstreamwriter

outputstreamwriter osw=new outputstreamwriter(out);

3.提高效率使用字元流緩衝區 bufferedwriter進行寫入

bufferedwriter bw=new bufferedwriter(osw);

string line=null;

while((line=bf.readline())!=null)

bufr.close;

操作流規律總結:

流操作基本規律:

兩個明確:

1.明確源和目的

源:輸入流。inputstream位元組流 reader 字元流

目的:輸出流 outputstream 位元組流 writer 字元流

2.操作的資料是否是純文字

是 就是字元流 如果裝置是鍵盤 就將位元組流轉換為字元流

不是 就是 位元組流

3.當體系明確後,在明確要是用那個具體的物件

通過裝置來區分

源裝置 記憶體 硬碟 鍵盤

目的裝置 記憶體 硬碟 控制台

4.是否需要提高效率

是 bufferedreader bufferedinputstream

否 buffreredwriter bufferedoutputstream

案例分析 :

1.將乙個文字檔案中的資料儲存到另乙個檔案中,複製檔案

源: inputstream位元組流 reader 字元流

是否是純文字 是 reader

裝置: 檔案 操作檔案的物件 就是filereader

是否需要高效

是 bufferedreader

filereader fr=new filereader(「a.txt」);

bufferedreader bufr=new bufferedreader(fr);

目的 outputstream 位元組流 writer 字元流

是否是純文字 :是 writer

裝置: 檔案 寫入檔案的物件 就是 filewriter

是否需要高效 是 bufferedwriter

filewriter fw=new filewriter(「b.txt」);

bufferedwriter bufw=new bufferedwriter(fw);

2.將乙個檔案資料儲存到另乙個檔案中,複製檔案。

分析源:

是否是純文字 : 不是 inputstream

裝置 檔案 就是 fileinputstream

是否高效 是

目的是否純文字 :不是 outputstream

裝置:檔案 fileoutputstream

是否高效 是

3.需求將鍵盤錄入的資料儲存到乙個檔案中 。

源:鍵盤 位元組流

是否純文字 reader

裝置 :鍵盤 ,對應的物件時 system.in 對應的是位元組流 ,為了操作方便 轉成字元流

既然明確了reader 就將system.in 轉換成字元流 inputstreamreader

inputstreamreader isr=new inputstreamreader(system.in);

需要高效嗎 ?

bufferedreader bufr=new bufferedreader(isr);

目的: 檔案

是否純文字 是 writer

裝置:檔案 filewriter

需要高效嗎?

是 bufferedwriter

4.擴充套件 :想要吧錄入的資料按照指定的編碼表(utf-8)將資料存到檔案中

目的:outputstream 位元組流 writer 字元流

是否是存文字:是 writer

裝置 :檔案 filewriter

預設編碼表是 gbk

編碼標只有轉換流可以指定。所以要使用的物件是寫入轉換流 outputstreamwriter

轉換流需要接受乙個自己輸出流,操作位元組輸出流的是fileoutputstream

outputstreamwriter osw=new outputstreamwriter(new fileoutputstream(「b.txt」),「utf-8」);

bufferedwriter bufw=new bufferedwriter (osw);

IO流學習總結(下) 轉換流(重要)

參考 大佬的部落格 分為兩種 inputstreamreader 位元組流轉字元流 outputstreamwriter 字元流轉位元組流 寫入資料 記憶體中的字元資料 字元流 outputstreamwriter 位元組流 網路傳輸 或檔案儲存 讀取資料 可以清楚地發現,不管如何操作,最終全部是以...

IO流 位元組流,字元流和轉換流的小結

io解決問題 解決裝置與裝置之間 的資料傳輸問題。比如 硬碟 記憶體 記憶體 硬碟 位元組流 輸入位元組流 inputstream 所有輸入位元組流的基類。抽象類。fileinputstream 讀取檔案的輸入位元組流。bufferedinputstream 緩衝輸入位元組流。該類內部其實就是維護了...

JAVA中的位元組流和字元流的轉換

以字元為導向的stream基本上有與之相對應的以位元組為導向的stream,兩個對應類實現的功能相同,只是操作時的導向不同 1 位元組輸入流轉換為字元輸入流 inputstreamreader是位元組流向字元流的橋梁,它使用指定的charset讀取位元組並將其解碼為字元,它使用的字符集可以由名稱指定...