java IO 檔案流詳解

2021-08-22 07:14:16 字數 3565 閱讀 8158

本篇博文學習了一下內容

fileinputstream 位元組輸入流

構造方法

讀取檔案

fileoutputstream 位元組輸出流

構造方法

寫入檔案

filerearder 字元輸入流

構造方法

讀取檔案

filewriter 字元輸出流

構造方法

寫出檔案

位元組檔案和字元檔案 總結

構造方法 方法

功能fileinputstream(string name)

通過開啟乙個到實際檔案的連線來建立乙個 fileinputstream,該檔案通過檔案系統中的路徑名 name 指定。

fileinputstream(file file)

通過開啟乙個到實際檔案的連線來建立乙個 fileinputstream,該檔案通過檔案系統中的 file 物件 file 指定。

這兩種構造方法都會報異常(檔案不存在的情況下),必須顯式的處理。

//兩種構造方法

fileinputstream fis = new fileinputstream(new file(path1));

fileinputstream fis = new fileinputstream("d:\\file");

read 方法 方法

功能read()

從此輸入流中讀取乙個資料位元組。

返回:下乙個資料位元組;如果已到達檔案末尾,則返回-1

read(byte b)

從此輸入流中將最多 b.length 個位元組的資料讀入乙個位元組陣列中。

read(byte b,int off,int len)

從此輸入流中將最多 len 個位元組的資料讀入乙個位元組陣列中。

/**

* read(byte b) 本質呼叫的是readbytes(b, 0, b.length) 方法

*/public int read(byte b) throws ioexception finally

return bytesread;

}/** * read(byte b, int off, int len) 呼叫的是readbytes(b, off, len) 方法

*/ public int read(byte b, int off, int len) throws ioexception finally

return bytesread;

}

從上面的原始碼來看 read(byte b) 和 read(byte b,int off,int len) 本質上是一樣的,相當於 read(byte b) 呼叫了read( b,0,b.length)方法。

從磁讀取檔案到程式裡
@test

public void test2()

}} catch (exception e) finally catch (ioexception e)

}} }

結果

dishgsdihkfw
構造方法 方法

功能fileoutputstream(file file) 

建立乙個向指定 file 物件表示的檔案中寫入資料的檔案輸出流。

fileoutputstream(string name) 

建立乙個向具有指定名稱的檔案中寫入資料的輸出檔案流。 

建立乙個向指定 file 物件表示的檔案中寫入資料的檔案輸出流。 

建立乙個向具有指定 name 的檔案中寫入資料的輸出檔案流

fileoutputstream fos = new fileoutputstream("c:\\users\\administrator\\desktop\\file\\file3.txt",true);
如果這個檔案不存在,則會新建乙個檔案,不會報異常。

write 方法 方法

功能write(int b) 

將指定位元組寫入此檔案輸出流。 

write(byte b) 

將 b.length 個位元組從指定位元組陣列寫入此檔案輸出流中。

write(byte b, int off, int len) 

將指定位元組陣列中從偏移量 off 開始的 len 個位元組寫入此檔案輸出流。 

我們模擬 fileinputstream 來看,write(byte b) 也相當於實現了 write(b, 0, b.length) 方法一樣。 

@test

public void test3() catch (exception e) finally catch (ioexception e)

}} }

構造方法 方法

功能filereader(file file)  

在給定從中讀取資料的 file 的情況下建立乙個新 filereader。

filereader(string filename) 

在給定從中讀取資料的檔名的情況下建立乙個新 filereader。

和 fileinputstream 一樣,這個構造方法會報異常(檔案不存在),必須顯式的處理。

filereader fr = new filereader("c:\\users\\administrator\\desktop\\file\\hah.txt");

filereader fr = new filereader(new file("c:\\users\\administrator\\desktop\\file\\hah.txt");

我們可以模擬的學習 filereader,這裡的 read 方法和 fileinputstream 方法一樣

構造方法 方法

功能filewriter(file file) 

建立乙個向指定 file 物件表示的檔案中寫入資料的檔案輸出流。

filewriter(string name) 

建立乙個向具有指定名稱的檔案中寫入資料的輸出檔案流。 

建立乙個向指定 file 物件表示的檔案中寫入資料的檔案輸出流。 

建立乙個向具有指定 name 的檔案中寫入資料的輸出檔案流

這裡的 writer 方法和 fileoutputstream 方法一樣,fileoutputstream 的writer 方法寫的是位元組陣列,這裡的writer 方法寫的是字元陣列。

@test

public void test2() catch (ioexception e1) finally catch (ioexception e) }}

}}

一般來說,純文字檔案是字元檔案,比如.txt檔案(word 是位元組檔案)

通過總結檔案流,我們可以看出fileinputstream 和 filereader 相對應,fileoutputstream 和 filewriter 相對應。

它們的構造方法以及處理檔案的方法都大致相同,我們可以模擬的學習檔案流,達到事半功倍的效果。

Java IO(字元流)複製檔案

1.複製檔案 包含中文 param path 目標檔案 param target 需要複製到的指定檔案 return boolean true 複製成功 false 複製失敗 throws ioexception public static boolean copy string path,stri...

Java I O 字元流的使用詳解

簡介 字元流的資料儲存單位是char,常用於文字的處理。其中可分為普通字元流和緩衝字元流。一 普通字元流 構造物件 使用時需要處理異常 輸入流 filereader fr new filereader string filepath read 讀 丨 close 關閉 輸出流 filewriter ...

Java IO流 字元流 與 轉換流 詳解

乙個字元字元的讀 只能用來操作文字 不能寫其他格式 寫入字元流的抽象類 實現子類 filewriter 示例 public class demo04 fwriter.write c fwriter.flush fwriter.write c,1,3 fwriter.flush 使用字串直接寫入 fw...