Java FileInputStream和FileOutputStream主要用于文件的读取与写入,本篇主讲FileInputStream的作用与使用@mikechen
什么是FileInputStream
FileInputStream流被称为文件字节输入流,意思指对文件数据以字节的形式进行读取操作,一般用于程序读取文件系统中的文件,比如:读取图片视频等文件。
FileInputStream类详解
常用子类有:
- FileInputStream 文件字节输入流;
- BufferedInputStream 缓冲字节输入流;
- ObjectInputStream 对象字节输入流;
FileInputStream构造方法
FileInputStream的构造方法有如下三种:
1.FileInputStream(File file)
FileInputStream(File file) 通过打开与实际文件的连接创建一个 FileInputStream ,该文件由文件系统中的 File对象 file命名
2.FileInputStream(FileDescriptor fdObj)
FileInputStream(FileDescriptor fdObj) 创建 FileInputStream通过使用文件描述符 fdObj ,其表示在文件系统中的现有连接到一个实际的文件
3.FileInputStream(String name)
FileInputStream(String name) 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的路径名 name命名
常用的有以下两个:
1)FileInputStream(File file):参数传入一个File类型的对象;
2)FileInputStream(String name):参数传入文件的路径。
FileInputStream常用方法
1. read()方法
read() 从输入流中读取一个字节返回int型变量,若到达文件末尾,则返回-1
//从此输入流中读取一个数据字节。 public int read();
2.read(byte[] b)方法
从输入流中读取 b.length 个字节到字节数组中,返回读入缓冲区的总字节数,若到达文件末尾,则返回-1。
//从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。 public int read(byte[] b); //从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。off:目标数组 b 中的起始偏移量。 public int read(byte[] b,int off,int len);
3.read(byte[] b,int off,int len)方法
从输入流中读取最多len个字节到字节数组中(从数组的off位置开始存储字节),当len为0时则返回0,如果len不为零,则该方法将阻塞,直到某些输入可用为止。
public int read(byte[] b,int off,int len) throws IOException
4.close() 方法
关闭此输入流并释放与该流关联的所有系统资源—即释放与实际文件的连接。
public void close() throws IOException
FileInputStream使用示例
1.使用步骤
第一步:打开流,即创建字节文件输入流对象;
第二步:读数据,即通过流读取内容;
第三步:释放资源,即用完后关闭流资源。
2.代码示例
详细代码示例如下:
public class FileInputStreamDemo { public void demo() throws Exception{ //1:创建字节文件输入流 FileInputStream fis = new FileInputStream("mikechen.txt") ; int by = 0 ; //2:开始读数据 while((by=fis.read())!=-1) { System.out.print((char)by); } //3:释放资源 fis.close(); } }
mikechen睿哥
mikechen睿哥,十余年BAT架构经验,资深技术专家,就职于阿里、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》