首页 > 其他分享 >io流-字节输出流和FileIntputStream介绍、代码演示

io流-字节输出流和FileIntputStream介绍、代码演示

时间:2022-10-17 10:55:54浏览次数:59  
标签:fis 字节 read FileIntputStream len io FileInputStream 读取

字节输出流

InputStream抽象类是表示字节输出流的所有类的超类 可以读取字节信息到内存中 它定义了自己输入流的基本共性功能方法

InputStream是隶属于java.io包下

public void close():关闭此输入流并释放资源与此流相关联的任何系统资源
public abstract int read():从输入流读取数据的下一个字节
public int read(byte[] b):从输入流中读取一些字节数 并将它们存储到字节数组b中

FileIntputStream介绍

FileIntputStream:文件字节输入流 隶属于java.io包下

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

构造方法:

FileInputStream(String name)
FileInputStream(File file)
参数:读取文件的数据源
String name:文件的路径
File file:文件

构造方法的作用

1.会创建一个FileInputStream对象

2.会把FileInputStream对象指定方法中要读取的文件

读取数据的原理(硬盘-->内存)

java程序-->JVM-->OS-->OS读取数据的方法-->读取文件

字节输入流的使用步骤(重点)

1.创建FileInputStream对象 构造方法中绑定要读取的数据源

2.使用FileInputStream对象中的方法read 读取文件

3.释放资源

代码:

复制代码
 public static void main(String[] args) throws Exception {
        //创建FileIntputStream对象
        FileInputStream fis = new FileInputStream("E:\\file\\a.txt");

        //使用read方法
        int read = fis.read();
        System.out.println(read);//a-->97
        //使用read方法
        read = fis.read();
        System.out.println(read);//b-->98
        //使用read方法
        read = fis.read();
        System.out.println(read);//-1

        fis.close();
    }
复制代码

a.txt

 运行结果:

可以看到读取都是一些重复的代码 我们可以使用循环将没有必要的代码写入到循环中

代码:

复制代码
public static void main(String[] args) throws Exception {
        //创建FileIntputStream对象
        FileInputStream fis = new FileInputStream("E:\\file\\a.txt");

        //定义一个值用于接收读取的返回值
        int len=0;
        //使用while循环 因为我们并不能确定循环的次数 所有我们可以使用while循环
        while ((len=fis.read())!=-1){//每当我们接收到的返回值和-1进行判断 如果是-1那就停止运行
            System.out.println(len);
        }
        //关闭流
        fis.close();
    }
复制代码

运行结果:

 这样做可以避免写出-1

布尔表达式(len=fis.read())!=-1

1.fis.read():读取一个字节

2.len=fis.read():把读取到的字节赋值给变量len

3.(len=fis.read)!=-1:判断变量len是否不等于-1

 如果不想要看数字 想看字符 可以进行强转

代码:

复制代码
 public static void main(String[] args) throws Exception {
        //创建FileIntputStream对象
        FileInputStream fis = new FileInputStream("E:\\file\\a.txt");

        //定义一个值用于接收读取的返回值
        int len=0;
        //使用while循环 因为我们并不能确定循环的次数 所有我们可以使用while循环
        while ((len=fis.read())!=-1){//每当我们接收到的返回值和-1进行判断 如果是-1那就停止运行
            System.out.println((char) len);
        }
        //关闭流
        fis.close();
    }
复制代码

运行结果:

 运行原理:

标签:fis,字节,read,FileIntputStream,len,io,FileInputStream,读取
From: https://www.cnblogs.com/shenziyi/p/16798412.html

相关文章