字节流
InputStream(字节输入流)读
Java为我们提InputSteam是一个抽象类,是表示字节输入流的所有类的超类。操作的数据都是字节,定义了字节输入流的基本共性功能方法。
InputStream类中常见的方法:供了多种多样的IO流,我们可以根据不同的功能及性能要求挑选合适的IO流。
方法名 |
描述 |
int read() |
一个字节一个字节地往外读,每读取一个字节,就处理一个字节。 |
int read(byte[] buffffer) |
读取数据时,先把读取到的数据填满这个byte[]类型的数组buffffer(buffffer是内存里面的一块缓冲区),然后再处理数组里面的数据。这就跟我们取水一样,先用一个桶去接,等桶接满水后再处理桶里面的水。如果是每读取一个字节就处理一个字节,这样子读取也太累了。 |
//读取一个字节并以整数的形式返回(0~255)
//如果返回-1就说明已经到了输入流的末尾
int read() throws IOException
//读取一系列字节并存储到一个数组buffer
//返回实际读取的字节数,如果读取前已到输入流的末尾,则返回-1
int read(byte[] buffer) throws IOException
//读取length个字节
//并存储到一个字节数组buffer,从length位置开始
//返回实际读取的字节数,如果读取前以到输入流的末尾返回-1.
int read(byte[] buffer,int offset,int length) throws IOException
//关闭流释放内存资源
void close() throws IOException
//跳过n个字节不读,返回实际跳过的字节数
long skip(long n) throws IOException
FileInputStream类
InputStream 有很多子类,其中子类 FileInputStream 可用来写入数据到文件。
FileInputStream通过字节的方式读取文件,适合读取所有类型文件(图像、视频、文本文件等)。
构造方法
方法名 |
描述 |
FileInputStream(File file) |
通过打开与实际文件的连接创建一个FileInputStream,该文件由文件系统中的 File对象 file命名。 |
FileInputStream(String name) |
通过打开与实际文件的连接创建一个FileInputStream,该文件由文件系统中的路径名 name命名。 |
读取数据 read() 方法
在读取文件中的数据时,调用 read 方法一次读一个字节,从而实现从文件中读取数据。
【示例】读取数据 read() 方法
public class FileInputStreamDemo {
public static void main(String[] args) throws Exception {
//1,实例化File对象,指明要操作的流
File file = new File("day-01\\hello.txt");
//2,提供具体的流 字节输入流对 FileInputStream
FileInputStream fis = new FileInputStream(file);
//3,读取数据
// 一次读一个字节
int len = 0;
//read()返回读入的一个字节。如果达到末尾,返回-1
// 当返回值为-1,则数据读取完毕
//方式一