当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。