fileinputstream 常用於讀取存儲在文件中的數據。在 Java IO 中,是一個面向位元組的輸入流,主要用於讀取文本和二進制數據。
一、文件的讀取方式
Java 支持多種文件讀取方式,其中最常用的是 FileInputStream。它可以實現將文件中的位元組讀取到程序中。
使用 FileInputStream 時,需要注意以下兩點:
1、在使用前需要確認文件已經存在,並具有讀取權限。
2、文件讀取完畢後,需關閉文件流,以釋放系統資源。
示例代碼
// 創建文件輸入流對象 FileInputStream fis = new FileInputStream("file.txt"); // 從文件輸入流中讀取所有位元組 int b; while ((b = fis.read()) != -1) { // 處理位元組數據 } // 關閉文件輸入流 fis.close();
二、文件讀取中的流處理
在讀取文件的過程中,需要使用緩衝區,以避免頻繁的磁盤訪問。 Java 提供了緩衝輸入流 BufferedInputStream,可用於對一個文件或另一個輸入流進行緩衝讀取。
同時,在處理文件讀取數據時,我們需要將讀取的位元組數據轉換成我們需要的數據類型。常用的轉換操作有:
1、bytesToInt() 將位元組數據轉換為 int 型。
2、toHex() 將位元組數據轉換為十六進制字符串。
示例代碼
// 創建文件輸入流對象 FileInputStream fis = new FileInputStream("file.txt"); BufferedInputStream bis = new BufferedInputStream(fis); // 讀取文件到位元組數組中 byte[] buffer = new byte[1024]; int len; while ((len = bis.read(buffer)) != -1) { // 處理位元組數據 } // 關閉緩衝輸入流 bis.close(); // 關閉文件輸入流 fis.close();
三、處理文件輸入流的異常
文件處理異常包括文件不存在、文件無法讀取、磁盤已滿等。為了避免在程序執行過程中出現異常導致程序崩潰,需要對文件輸入流處理中可能出現的異常進行捕獲和處理。
在處理文件輸入流異常時,可以使用 try…catch 語句捕獲異常, 或者使用 throws 語句將異常聲明為方法的一部分, 並由方法的調用者處理異常。
示例代碼
public void readFile() throws IOException { FileInputStream fis = null; try { fis = new FileInputStream("file.txt"); int b; while ((b = fis.read()) != -1) { // 處理位元組數據 } } catch (FileNotFoundException e) { System.err.println("文件不存在!"); } catch (IOException e) { System.err.println("文件讀取失敗!"); } finally { if (fis != null) { fis.close(); } } }
四、文件的編碼方式
在 Java 中,文件編碼方式是指將字符轉換成位元組的方式。不同的編碼方式編碼同一個字符可能得到不同的位元組序列。
常用的文件編碼方式有 ANSI 編碼、UTF-8 編碼和 Unicode 編碼。在使用 fileinputstream 讀取文件時需要知道文件使用的編碼方式,以便正確的讀取文件內容。
示例代碼
// 使用 UTF-8 編碼方式創建文件輸入流 FileInputStream fis = new FileInputStream("file.txt"); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader br = new BufferedReader(isr); // 逐行讀取文件內容 String line; while ((line = br.readLine()) != null) { // 處理文件內容 } // 關閉緩衝字符輸入流 br.close(); // 關閉字符輸入流 isr.close(); // 關閉文件輸入流 fis.close();
五、總結
在文件讀取中, fileinputstream 是一種常見的讀取方式,使用它可以方便地將文件中的位元組讀取到程序中,同時要注意關閉文件流以釋放系統資源。
在處理文件輸入流異常時,需要注意捕獲和處理可能出現的異常,避免程序崩潰。
同時,在處理文件讀取數據時,我們需要考慮緩衝區的使用,以及對讀取的位元組數據進行類型轉換。
最後,在讀取文件時,需要正確的指定文件編碼方式,以避免讀取內容出現亂碼。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/157726.html