Java日志第37天 2020.8.11

字节输入流

java.lang.InputStream

此抽象类是表示字节输入流的所有类的超类

 

所有子类中共性的方法:

1. int read():从输入流中读取数据的下一个字节

2. int read(byte[] b) :从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中

3. void close():关闭此输入流并释放与该流关联的所有系统资源

 

FileInputStream

文件字节输入流

java.io.FiIeInputStream entends InputStream

作用:把硬盘文件中的数据读取到内存中使用

构造方法

- FileInputStream(String name)

- FileInputStream(File file)

 

读取一个字节

import java.io.FileInputStream;
import java.io.IOException;

public class Demo01InputStream {

    public static void main(String[] args) throws IOException {
        //创建FileInputStream对象,构造方法中绑定要读取的数据源
        FileInputStream fis = new FileInputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\a.txt");
        //使用FileInputStream对象中的方法read,读取文件
        //read方法一次读取一个字节,读取至文件末尾返回-1
        int len = fis.read();
        System.out.println((char) len);

        len = fis.read();
        System.out.println((char) len);

        len = fis.read();
        System.out.println((char) len);

        //释放资源
        fis.close();
    }
}

结果如下:

 

 以上的重复代码可以使用while循环

import java.io.FileInputStream;
import java.io.IOException;

public class Demo01InputStream {

    public static void main(String[] args) throws IOException {
        //创建FileInputStream对象,构造方法中绑定要读取的数据源
        FileInputStream fis = new FileInputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\a.txt");
        //使用FileInputStream对象中的方法read,读取文件
        //read方法一次读取一个字节,读取至文件末尾返回-1
        int len = 0;
        while((len = fis.read()) != -1){
            System.out.println((char) len);
        }

        //释放资源
        fis.close();
    }
}

 

读取多个字节

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Arrays;

public class Demo01InputStream {

    public static void main(String[] args) throws IOException {
        //创建FileInputStream对象,构造方法中绑定要读取的数据源
        FileInputStream fis = new FileInputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\a.txt");
        //使用FileInputStream对象中的方法read,读取文件
        byte[] bytes = new byte[2];
        int len = fis.read(bytes);
        System.out.println("len = "+len);
        System.out.println(new String(bytes));

        len = fis.read(bytes);
        System.out.println("len = "+len);
        System.out.println(new String(bytes));

        len = fis.read(bytes);
        System.out.println("len = "+len);
        System.out.println(new String(bytes));

        //释放资源
        fis.close();
    }

结果如下:

 

posted @ 2020-08-11 21:59  Gazikel  阅读(198)  评论(0编辑  收藏  举报