學習筆記之緩衝流

2021-10-02 14:21:38 字數 3148 閱讀 1336

使用位元組輸入流讀取:乙個乙個傳

使用位元組緩衝輸入流:傳陣列bufferedoutputstream位元組緩衝輸出流

close()

flush()

write(byte b) write(byte b,int off,int len) abstract void write(int b)

要flush或者close重新整理緩衝區,才能顯示在檔案

1.建立fileinputsteam物件,構造方法中繫結要讀取的資料來源

2.建立bufferedinputstream物件,構造方法中傳遞fileinputstream物件,提高fileinputstream物件的讀取效率。

3.使用它的read,讀取檔案。

4.釋放資源

fileinputstream fis=new fileinputstream(「abc\123.txt」)

bufferedinputstream bis=new bufferedinputstream(fis)

int len=0

while((len=bis.read())!-1)

syso(len)

bis.close

int read()

int read(byte b)

void close()

bufferedwriter bw=new bufferedwriter(new filewrite(「abc/123.txt」))

void write(int c) write(char cbuf)寫入單個字元

abstract void write(char cbuf,int off,int len)

write(string str) write(string str,int off,int len) flush() close()

特有:void newline()寫入乙個行分隔符。會根據不同作業系統,獲取不同的分隔符

bw.newline();代替bw.write("\r\n")

換行:換行符號 windows:\r\n linux:/n mac:/r

bufferedwriter bw=new bufferedwriter(new filewrite(「abc/123.txt」))

int read(int c) read(char cbuf)一次讀取多個字元,將字元讀入陣列

bufferedreader(reader in)建立乙個使用預設大小輸入緩衝區的緩衝字元輸入流

bufferedreader(reader in,int sz)指定大小

引數 reader in:字元輸入流 我們傳遞filereader,緩衝流會給它增加乙個緩衝區,提高它的讀取效率

特有:string readline()讀取乙個文字行。讀取一行資料

行的終止符號:通過下列字元之一即可認為某行已終止:換行(』\n』)、回車(』\r』)或回車後直接

跟著換行(\r\n).

返回值:包含該行內容的字串,不包含任何中支付,如果已到達流末尾,則返回null

bufferedreader br=new bufferedreader(new filereader(「abc\123.txt」))

string line;

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

br.close();

把能看懂的變成看不懂的——編碼

把看不懂的變成能看懂的——解碼inputstreamreader是位元組流通向字元流的橋梁 把位元組轉換成字元——>解碼

可以查ide預設碼表utf-8,可以查指定碼表gbk

ouputstreamreader是字元流通向位元組流的橋梁 把字元變成位元組——>編碼

可以查ide預設碼表utf-8,可以查指定碼表gbk

objectoutputstream物件的序列化流

作用:把物件以流的方式寫入到檔案中儲存

特有:void writeobject(object obj)將指定的物件寫入objectoutputstream

序列化和反序列化會丟擲notserializableexception沒有序列化異常

要實現序列化serializable介面。才能使其進行

這個介面也叫標誌型介面,等於給類新增乙個標誌,,給豬肉蓋個章

有:就可以進行序列化和反序列化

沒有:就會notserializableexception丟擲異常

objectinputstream:物件的反序列化流

作用:把檔案中儲存的物件,以流的方式讀取出來使用

特有:object readobject()從objectinputstream讀取物件

這個方法宣告丟擲classnotfoundexception(class檔案找不到異常)

當不存在物件的class檔案時丟擲此異常

反序列化的前提

1.類必須實現serializable

2.必須存在類對應的class檔案

存在class,但是修改了會產生下面

invalidclas***ception異常

序列化衝突異常

如果序列化後改變檔案,它的uid改變了

序列化與反序列化的serialversionuid不一樣

但是可以自己進行定義 static final long serialversionuid=1l

就不會發生衝突

被靜態修飾的成員變數不能被序列化,序列化的都是物件

transient關鍵字:瞬態關鍵字

被它修飾成員變數,不能被序列化

與static差不多

printstream列印流

為其他輸出流新增了功能,使他們能夠方便地列印各種資料值表示形式。

特點:1.只負責資料的輸出,不負責資料的讀取

2.與其他輸出流不同,它永遠不會丟擲ioexception

特有:print() println()

輸出任意型別的值

printstream ps=new printstream("\目的地.txt")

system.setout(ps)//把輸出語句的目的地改變為列印流的目的地

syso(「我列印在目的地」)

ps.close();

緩衝流之字元緩衝流

字元緩衝流 字元緩衝輸入流 bufferedreader 字元緩衝輸出流 bufferedwriter 完成文字資料的高效的寫入與讀取的操作 1字元緩衝輸出流 bufferedwriter void newline 根據當前的系統,寫入乙個換行符 public static void method0...

Java IO 學習筆記(緩衝流)

緩衝流 類 bufferedinputstream 和 bufferedoutputstream 實現了帶緩衝的過濾流,它提供了緩衝機制,把任意的 i o 流 到緩衝流上,可以提高 i o 流的讀取效率。在初始化時,除了要指定所連線的 i o 流之外,還可以指定緩衝區的大小。預設時是用32位元組大小...

Java之字元流 字元緩衝流

繼承關係圖 字元流 字元輸入流 reader抽象類 inputstreamreader 輸入操作的轉換流 filereader 用來操作檔案的字元輸入流 簡便的流 字元輸出流 writer抽象類 outputstreamwriter 輸出操作的轉換流 filewriter 用來操作檔案的字元輸出流 ...