JAVA IO流總結(二) 位元組流

2021-08-02 02:18:55 字數 1434 閱讀 1147

一、inputstream

位元組流的read方法,可以是以下方式:

read(byte b)

read(byte b, int off, int len)

1.1 fileinputstream

當乙個檔案是二進位制資料的時候,使用fileinputstream進行讀取,基本建構函式:

fileinputstream(file file)

fileinputstream(string name)

1.2 filterinputstream

filterinputstream作為一些其他位元組流輸入類的父類

1.2.1 bufferedinputstream

內部建立乙個緩衝區,可以使讀取更有效率:

bufferedinputstream(inputstream in)

1.2.2 datainputstream

建立乙個與機器底層無關的資料輸入流,構造方法:

datainputstream(inputstream in)

有眾多讀取方法,readboolean()、readbyte() 、readchar() 、readdouble() 、readfloat() 、readint() 、readutf() 等

另外這個類不是執行緒安全

1.2.3 pushbakinputstream

通過unread方法把資料複製,然後把資料放回資料流的頭部,構造方法:

pushbackreader(reader in)

1.3 objectinputstream

通常使用objectoutputstream寫入的物件,使用objectinputstream讀取,該物件必須是可序列化的

objectinputstream(inputstream in)

1.4 pipedinputstream

與字元流的類似,需要使用connect繫結pipedoutputstream

1.5 sequenceinputstream

合併輸入流,可以把輸入流放入容器中進行合併:

vectorv = new vector(); 

v.add(new fileinputstream("c:\\1.txt")); 

v.add(new fileinputstream("c:\\2.txt")); 

v.add(new fileinputstream("c:\\3.txt"));

enumerationen = v.elements();

sequenceinputstream sis = new sequenceinputstream(en); 

也可以把兩個輸入流作為引數放入建構函式中

sequenceinputstream(inputstream s1, inputstream s2)

1.6 stringbufferinputstream

java IO流 位元組流讀寫中文

位元組流讀取中文的問題 位元組流在讀中文的時候有可能會讀到半個中文,造成亂碼 fileinputstream fis new fileinputstream yyy.txt byte arr new byte 4 int len while len fis.read arr 1 位元組流寫出中文的問...

javaio位元組流和字元流

位元組流 讀檔案 test public void test catch ioexception e catch filenotfoundexception e 寫檔案 test public void test2 catch filenotfoundexception e catch ioexce...

Java I O流(2) java位元組流操作

位元組流基類 inputstream outputstream class filestream public static void writefile throws ioexception public static void readfile 1 throws ioexception fis....