public class FileInputStream extends InputStream
FileInputStream从文件系统中的文件获取输入字节。
什么文件可用取决于主机环境。
FileInputStream用于读取诸如图像数据的原始字节流。 要阅读字符串,请考虑使用FileReader 。
File , FileDescriptor , FileOutputStream , Files.newInputStream(java.nio.file.Path, java.nio.file.OpenOption...)
| Constructor and Description |
|---|
FileInputStream(File file)
通过打开与实际文件的连接创建一个
FileInputStream ,该文件由文件系统中的
File对象
file命名。
|
FileInputStream(FileDescriptor fdObj)
创建
FileInputStream通过使用文件描述符
fdObj ,其表示在文件系统中的现有连接到一个实际的文件。
|
FileInputStream(String name)
通过打开与实际文件的连接来创建一个
FileInputStream ,该文件由文件系统中的路径名
name命名。
|
| Modifier and Type | Method and Description |
|---|---|
int |
available()
返回从此输入流中可以读取(或跳过)的剩余字节数的估计值,而不会被下一次调用此输入流的方法阻塞。
|
void |
close()
关闭此文件输入流并释放与流相关联的任何系统资源。
|
protected void |
finalize()
确保当这个文件输入流的
close方法没有更多的引用时被调用。
|
FileChannel |
getChannel()
返回与此文件输入流相关联的唯一的 FileChannel对象。
|
FileDescriptor |
getFD()
返回表示与此
FileInputStream正在使用的文件系统中实际文件的连接的
FileDescriptor对象。
|
int |
read()
从该输入流读取一个字节的数据。
|
int |
read(byte[] b)
从该输入流读取最多
b.length个字节的数据为字节数组。
|
int |
read(byte[] b, int off, int len)
从该输入流读取最多
len字节的数据为字节数组。
|
long |
skip(long n)
跳过并从输入流中丢弃
n字节的数据。
|
mark, markSupported, resetpublic FileInputStream(String name) throws FileNotFoundException
FileInputStream文件,该文件由文件系统中的路径名name命名。
创建一个新的FileDescriptor对象来表示此文件连接。
首先,如果有一个安全管理器,它的checkRead方法被调用与name参数作为其参数。
如果命名文件不存在,则是一个目录而不是常规文件,或者由于某些其他原因无法打开读取,因此抛出一个FileNotFoundException 。
name - 与系统相关的文件名。
FileNotFoundException - 如果文件不存在,是一个目录而不是常规文件,或者由于某些其他原因无法打开阅读。
SecurityException - 如果安全管理器存在,并且其
checkRead方法拒绝对该文件的读取访问。
SecurityManager.checkRead(java.lang.String)
public FileInputStream(File file) throws FileNotFoundException
FileInputStream ,该文件由文件系统中的File对象file命名。
创建一个新的FileDescriptor对象来表示此文件连接。
首先,如果有一个安全管理器,它的checkRead方法file参数表示的路径作为参数来调用。
如果命名文件不存在,则是一个目录而不是常规文件,或者由于某些其他原因无法打开读取,因此抛出一个FileNotFoundException 。
file - 要打开阅读的文件。
FileNotFoundException - 如果文件不存在,是一个目录而不是常规文件,或者由于某些其他原因无法打开阅读。
SecurityException - 如果安全管理器存在,并且其
checkRead方法拒绝对该文件的读取访问。
File.getPath() ,
SecurityManager.checkRead(java.lang.String)
public FileInputStream(FileDescriptor fdObj)
FileInputStream通过使用文件描述符fdObj ,其表示在文件系统中的现有连接到一个实际的文件。
如果有安全管理器,则调用其checkRead方法,文件描述符fdObj作为参数,以查看是否可以读取文件描述符。 如果文件描述符被拒绝读访问,则抛出一个SecurityException 。
如果fdObj为null,则抛出NullPointerException 。
如果fdObj是invalid,那么这个构造函数不会抛出异常 。 但是,如果在结果流上调用方法来尝试流上的I / O,则会抛出一个IOException 。
fdObj - 要打开阅读的文件描述符。
SecurityException - 如果安全管理器存在,并且其
checkRead方法拒绝对
checkRead读取访问。
SecurityManager.checkRead(java.io.FileDescriptor)
public int read()
throws IOException
read在
InputStream
-1 。
IOException - 如果发生I / O错误。
public int read(byte[] b)
throws IOException
b.length字节的数据到字节数组。
此方法将阻塞,直到某些输入可用。
read在
InputStream类
b - 读取数据的缓冲区。
-1 。
IOException - 如果发生I / O错误。
InputStream.read(byte[], int, int)
public int read(byte[] b,
int off,
int len)
throws IOException
len字节的数据为字节数组。
如果len不为零,该方法将阻塞,直到某些输入可用;
否则,不会读取字节,并返回0 。
read在类
InputStream
b - 读取数据的缓冲区。
off - 目标数组
b的起始偏移量
len - 读取的最大字节数。
-1 。
NullPointerException - 如果
b是
null 。
IndexOutOfBoundsException - 如果
off为负数,
len为负数,或
len为大于
b.length - off
IOException - 如果发生I / O错误
InputStream.read()
public long skip(long n)
throws IOException
n个字节的数据。
由于各种原因, skip方法可能会跳过一些较小数量的字节,可能是0 。 如果n为负,则该方法将尝试向后跳。 如果后台文件不支持其当前位置的向后跳过,则会抛出IOException 。 返回实际跳过的字节数。 如果它向前跳,它返回一个正值。 如果它向后跳,它返回一个负值。
该方法可能会跳过比后备文件中剩余的字节更多的字节。 这不会产生异常,并且跳过的字节数可能包括超出后台文件的EOF的一些字节数。 尝试在跳过结束后从流中读取将导致-1表示文件的结尾。
skip在
InputStream
n - 要跳过的字节数。
IOException - 如果n为负,如果流不支持查询,或者发生I / O错误。
public int available()
throws IOException
在某些情况下,非阻塞读取(或跳过)在缓慢时可能会被阻止,例如在慢速网络中读取大文件时。
available在
InputStream
IOException - 如果此文件输入流已通过调用
close关闭或发生I / O错误。
public void close()
throws IOException
如果该流具有相关联的信道,则该信道也被关闭。
close在接口
Closeable
close在界面
AutoCloseable
close在
InputStream类
IOException - 如果发生I / O错误。
public final FileDescriptor getFD() throws IOException
FileDescriptor对象,表示与该FileInputStream正在使用的文件系统中的实际文件的
FileInputStream 。
IOException - 如果发生I / O错误。
FileDescriptor
public FileChannel getChannel()
FileChannel对象。
返回通道的初始position将等于从文件读取的字节数到目前为止。 从该流读取字节将增加通道的位置。 通过显式地或通过阅读来改变频道的位置将会改变这个流的文件位置。
protected void finalize()
throws IOException
close方法。
finalize在
Object类
IOException - 如果发生I / O错误。
close()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.