大家好,又见面了,我是你们的朋友全栈君。
FileInputStream类
如果用户的文件读取需求比较简单,则可以使用FileInputStream类,该类是InputStream的子类,提供了基本的文件读取功能。
FileInputStream类的常用构造方法如下:
Ø FileInputStream( String name ):使用给定的文件名name,创建一个FileInputStream对象。
Ø FileInputStream( File file ):使用File对象创建FileInputStream对象。
1.使用文件输入流读取文件
文件输入流FileInputStream提供了对文件的存取。为了读取文件,使用文件输入流构造方法来打开一个到达该文件的输入流(源就是这个文件,输入流指向这个文件)。
例如:为了读取一个名为myfile.txt的文件,建立一个文件流对象,代码如下:
FileInputStream istream=new FileInputStream(“myfile.txt”);
或者:File file=newFile(“myfile.txt””);
FileInputStream istream=new FileInputStream(file);
2.从输入流中读取字节
输入流的唯一目的是提供通往数据的通道,程序可以通过这个通道读取文件中的数据。
read方法提供了一个从输入流读取数据的基本方法,read方法的格式如下:
返回值 |
方法 |
说明 |
int |
read( ) |
从输入流中读取数据的下一个字节 |
int |
read(byte[] b) |
从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。以整数形式返回读取的字节数。 |
int |
read(byte[] b, int off, int len) |
将输入流中最多 len 个数据字节读入 byte 数组。尝试读取 len 个字节,但读取的字节也可能小于该值。以整数形式返回实际读取的字节数。 |
注:read方法在从输入流中读取源中的数据时,如果到达源的末尾,便会返回-1。
FileInputStream流顺序地读取文件,只要不关闭流,每次调用read方法就顺序的读取源中其余的内容,直至源的末尾或流被关闭。
3.关闭流
虽然Java在程序结束时自动关闭所有打开的流,但是当我们使用完流后,显式的关闭我们打开的流仍是一个良好的习惯。如果没有过关闭被打开的流,可能会用尽系统资源或者造成某些资源不能被其他程序访问。关闭输入流,可以把该流缓冲区中的内容清除。
close( )方法可以关闭我们打开的输入流。
实例如下:
(1) 在C盘根目录下建立一个名称为“FileInputStreamDemo.txt”的文件,文件内输入“This is atest about FileInputStream .”;
(2) 创建Java文件读取文件,代码如下:
import java.io.File;import java.io.FileInputStream;public class FileInputStreamDemo { public staticvoidmain(String[] args){ File file; int b; byte[] data=newbyte[512]; try{ file=new File("C:"+File.separator+"FileInputStreamDemo.txt"); FileInputStream in=new FileInputStream(file); while ((b=in.read(data, 0, 512))!=-1) { String str=new String(data,0,b); System.out.println(str); }
<span style="white-space:pre"> </span>in.close(); }catch(Exception e){ e.printStackTrace(); } }}
(3) 结果如下:
Thisis a test about FileInputStream .
FileInputStream继承自InputStream类,更多方法可以参考博文 《
Java IO之输入输出流 》中的输入流InputStream类的方法。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/144728.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...