Java中提供了一個FileInputStream類來處理文件輸入流。 使用它可以輕鬆讀取文件中的內容。 FileInputStream繼承了InputStream類,用於打開一個文件,以便從中讀取數據。在本文中,我們將詳細介紹如何使用FileInputStream類。
一、文件的讀取方式
以FileInputStream為例,讀取文件的方式主要有兩種:位元組流和字元流。 FileInputSteam繼承自InputStream,在InputStream中已實現了字元流和位元組流的轉換。 因此,FileInputStream可以讀取以任意編碼格式存儲的數據。
下面通過代碼演示FileInputStream讀取文件的兩種方式:
//位元組流
FileInputStream fis = new FileInputStream("filePath");
int byteRead;
while ((byteRead = fis.read()) != -1) {
System.out.print((char)byteRead);
}
fis.close();
//字元流
Reader reader = new BufferedReader(new InputStreamReader(new FileInputStream("filePath")));
int charRead;
while ((charRead = reader.read()) != -1) {
System.out.print((char)charRead);
}
reader.close();
上述代碼中,FileInputStream讀取文件的方式在循環中不斷讀取每一個位元組或字元並輸出。 需要注意的是,這裡將讀取到的位元組強制轉換為char類型,以便輸出。
二、文件的打開方式
在打開文件的時候,FileInputStream提供了許多不同的選項,以方便程序員自由控制其行為。 接下來,我們將介紹一些FileInputStream打開文件的常用選項:
1.文件路徑
我們可以使用相對或者絕對路徑來打開一個文件。如果使用相對路徑,程序將使用當前工作目錄來解析文件路徑。 在下面的例子中以相對路徑打開文件。
FileInputStream fis = new FileInputStream("file.txt");
當然,我們也可以使用絕對路徑來打開一個文件,如下所示:
FileInputStream fis = new FileInputStream("C:\\Users\\lzq\\Desktop\\file.txt");
2.文件打開方式
在FileInputStream中,我們可以設置這樣一個屬性,就是當打開一個文件時,該文件不存在時是否創建新文件。 如果我們希望在文件不存在時自動創建文件,則可以將第二個參數設置為true。 下面的代碼演示的是如何以只讀方式打開文件,如果文件不存在,不會自動創建文件。
FileInputStream fis = new FileInputStream("file.txt");
在下面的代碼中,我們以創建新文件的方式打開了文件。如果該文件不存在,則自動創建它。
FileInputStream fis = new FileInputStream("file.txt",true);
三、文件的讀取操作
在打開一個文件之後,我們就可以執行文件的讀取操作了。在FileInputStream中,我們提供了多種讀取一個文件中數據的方式,包括read()、read(byte[] b)、read(byte[] b, int off, int len)等等,這裡我們主要介紹read()方法的使用。
read() 方法的作用是從文件中讀取一個位元組。 如果該位元組大於等於0,則返回該位元組。如果該位元組小於0,則文件末尾已經被讀取,返回-1。
FileInputStream fis = new FileInputStream("filePath");
int byteRead;
while ((byteRead = fis.read()) != -1) {
System.out.print((char)byteRead);
}
fis.close();
在這段代碼中,我們使用一個while循環來循環讀取文件中的每一個位元組,當讀取到文件末尾時返回-1,停止循環。需要注意的是,我們需要將讀取到的位元組強制轉換為char類型以便輸出。
除了read()方法,我們還可以使用read(byte[] b)、read(byte[] b, int off, int len)等方法進行文件讀取操作。但與read()方法不同的是,這些方法可以同時讀取多個位元組,因此能夠提高文件讀取效率。
四、總結
Java中提供了FileInputStream類用於處理文件輸入流,同時也提供了多種操作方式。 當我們需要操作文件時,FileInputStream提供了豐富的選項,以方便程序員自由控制其行為。 本文介紹了如何使用FileInputStream以及各種選項的使用方式。
最後提醒大家,使用完FileInputStream後,一定要記得關閉文件。否則將會導致資源浪費和文件佔用情況。
FileInputStream fis = new FileInputStream("filePath");
//文件讀取操作
fis.close();
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/293222.html