io流-字节输出流和FileIntputStream介绍、代码演示
字节输出流
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();
    }
运行结果:

运行原理:

 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号