FileInputStream继承了InputStream(字节输入流超类)
//用于读取诸如图像数据的原始字节流
public class FileInputStream
extends InputStream
构造方法:
FileInputStream(File file)
通过打开与实际文件的连接创建一个 FileInputStream ,该文件由文件系统中的 File对象 file命名。
FileInputStream(FileDescriptor fdObj)
创建 FileInputStream通过使用文件描述符 fdObj ,其表示在文件系统中的现有连接到一个实际的文件。
FileInputStream(String name)
通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的路径名 name命名。
所有方法:
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字节的数据。
代码实例:
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamDemo02 {
public static void main(String[] args) throws IOException {
//创建字节输入流
FileInputStream fis=new FileInputStream("D:\\桌面\\毕业\\基本信息.txt");
//调用字节流输入方法
byte[] bytes=new byte[5];
//第一次读取
int len =fis.read(bytes);
System.out.println("第一次读:"+len);
System.out.println(new String(bytes,0,len));
//第二次读取
len =fis.read(bytes);
System.out.println("第二次读:"+len);
System.out.println(new String(bytes,0,len));
//第三次读取
len =fis.read(bytes);
System.out.println("第三次读:"+len);
System.out.println(new String(bytes,0,len));
len =fis.read(bytes);
System.out.println("第四次读:"+len);
/**输出结果:
* 第一次读:5
* hello
* 第二次读:5
*
* wor
* 第三次读:4
* ld
*
* 第四次读:-1
*/
}
}
异常信息:
异常
FileNotFoundException - 如果文件不存在,是一个目录而不是常规文件,或者由于某些其他原因无法打开阅读。
SecurityException - 如果安全管理器存在,并且其 checkRead方法拒绝对该文件的读取访问。
IOException - 如果n为负,如果流不支持查询,或者发生I / O错误。
IOException - 如果发生I / O错误。
IOException - 如果此文件输入流已通过调用 close关闭或发生I / O错误。