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