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 Java.io.FileInputStream.available()用法及代碼示例
- Java Java.io.FileInputStream.close()用法及代碼示例
- Java Java.io.FileInputStream.finalize()用法及代碼示例
- Java Java.io.FileInputStream.getChannel()用法及代碼示例
- Java Java.io.FileInputStream.getFD()用法及代碼示例
- Java Java.io.FileInputStream.read()用法及代碼示例
- Java Java.io.FileInputStream.skip()用法及代碼示例
- Java Java.io.File.canExecute()用法及代碼示例
- Java Java.io.File.canRead()用法及代碼示例
- Java Java.io.File.canWrite()用法及代碼示例
- Java Java.io.File.compareTo()用法及代碼示例
- Java Java.io.File.createNewFile()用法及代碼示例
- Java Java.io.File.createTempFile()用法及代碼示例
- Java Java.io.File.delete()用法及代碼示例
- Java Java.io.File.deleteOnExit()用法及代碼示例
- Java Java.io.File.equals()用法及代碼示例
- Java Java.io.File.exists()用法及代碼示例
- Java Java.io.File.getAbsoluteFile()用法及代碼示例
- Java Java.io.File.getAbsolutePath()用法及代碼示例
- Java Java.io.File.getCanonicalFile()用法及代碼示例
- Java Java.io.File.getCanonicalPath()用法及代碼示例
- Java Java.io.File.getFreeSpace()用法及代碼示例
- Java Java.io.File.getName()用法及代碼示例
- Java Java.io.File.getParent()用法及代碼示例
- Java Java.io.File.getParentFile()用法及代碼示例
注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Java.io.FileInputStream Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。