當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Java.io.FileInputStream用法及代碼示例


FileInputStream class 對於以字節序列形式從文件讀取數據很有用。 FileInputStream 用於讀取原始字節流,例如圖像數據。要讀取字符流,請考慮使用 FileReader。

Constructors of FileInputStream Class

1. FileInputStream(File file):創建一個輸入文件流以從指定的 File 對象中讀取。

2. FileInputStream(FileDescriptor fdobj):創建一個輸入文件流以從指定的文件說明符中讀取。

3. 文件輸入流(字符串名稱):創建一個輸入文件流以從具有指定名稱的文件中讀取。

Methods of FileInputStream Class

方法 執行的操作
available() 返回可從此輸入流讀取(或跳過)的剩餘字節數的估計值。
close() 關閉此文件輸入流並釋放與該流關聯的所有係統資源。
finalize() 確保當不再有對該文件輸入流的引用時,調用該文件輸入流的 close 方法。
getChannel() 返回與此文件輸入流關聯的唯一FileChannel對象。
getFD() 返回 FileDescriptor 對象,該對象表示與此 FileInputStream 使用的文件係統中實際文件的連接。
read() 從此輸入流讀取一個字節的數據
讀(字節[] b) 從此輸入流中讀取最多 b.length 字節的數據到字節數組中。
讀(字節[] b,int關閉,int長度) 從此輸入流中讀取最多 len 個字節的數據到字節數組中。
skip() 跳過並丟棄輸入流中的 n 字節數據

現在,當我們使用這些方法時,我們通常會按照以下步驟使用 FileInputStream 從文件中讀取數據,這是 FileInputClass 的最後通牒

步驟 1:將文件附加到FileInputStream,因為這將使我們能夠從文件中讀取數據,如下所示:

FileInputStream  fileInputStream =new FileInputStream(“file.txt”);

步驟2:現在為了從文件中讀取數據,我們應該從FileInputStream中讀取數據,如下所示:

ch=fileInputStream.read();

步驟3-A:當沒有更多數據可供進一步讀取時,read()方法返回-1;

步驟 3-B:然後我們應該將監視器附加到輸出流。為了顯示數據,我們可以使用System.out.print。

System.out.print(ch);

執行:

原始文件內容:

This is my first line
This is my second line

例子:

Java


// Java Program to Demonstrate FileInputStream Class 
  
// Importing I/O classes 
import java.io.*; 
  
// Main class 
// ReadFile 
class GFG { 
  
    // Main driver method 
    public static void main(String args[]) 
        throws IOException 
    { 
  
        // Attaching the file to FileInputStream 
        FileInputStream fin 
            = new FileInputStream("file1.txt"); 
  
        // Illustrating getChannel() method 
        System.out.println(fin.getChannel()); 
  
        // Illustrating getFD() method 
        System.out.println(fin.getFD()); 
  
        // Illustrating available method 
        System.out.println("Number of remaining bytes:"
                           + fin.available()); 
  
        // Illustrating skip() method 
        fin.skip(4); 
  
        // Display message for better readability 
        System.out.println("FileContents :"); 
  
        // Reading characters from FileInputStream 
        // and write them 
        int ch; 
  
        // Holds true till there is data inside file 
        while ((ch = fin.read()) != -1) 
            System.out.print((char)ch); 
  
        // Close the file connections 
        // using close() method 
        fin.close(); 
    } 
}

輸出:

sun.nio.ch.FileChannelImpl@1540e19d
java.io.FileDescriptor@677327b6
Number of remaining bytes:45
FileContents :
 is my first line
This is my second line

BufferedInputStream 可用於從文件中一次讀取充滿數據的緩衝區。這提高了執行速度。



相關用法


注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Java.io.FileInputStream Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。