zoukankan      html  css  js  c++  java
  • 0425-字节输入流FileInputStream

    package A10_IOStream;
    
    import java.io.FileInputStream;
    import java.io.IOException;
    
    /*
    java.io.InputStream字节输入了,该抽象类是表示字节输入流的所有类的超类
    共性方法:
        int read()从输入流中读取数据的下一个字节。
        int read(byte[] b)从输入流中读取一定数量的字节,并存储在缓冲区数组b中。
        void close()关闭此输入流并释放与该流关联的所有系统资源
    
     java.io.FileInputStream extends InputStream:文件字节输入流
     作用:把硬盘中的文件数据,读取到内存中使用
     构造方法:
        FileInputStream(File file)通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的 File 对象 file 指定。
        FileInputStream(FileDescriptor fdObj)通过使用文件描述符 fdObj 创建一个 FileInputStream,该文件描述符表示到文件系统中某个实际文件的现有连接。
        FileInputStream(String name)通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。
    构造方法作用:
        1.创建FileInputStream对象
        2.把FileInputStream对象指向构造方法要读取的文件
        文件读取原理
        java程序-->JVM-->OS-->OS读取数据的方法-->读取文件
    字节输入流的使用步骤(重点)
        1.创建对象  2.读取文件  3.释放资源
    */
    public class D02_FileInputStream {
        public static void main(String[] args) throws IOException {
    /*  一次读取一个字节
        布尔表达式(len=fis.read())!=-1
            1.fis.read()读取一个字节
            2.len=fis.read()将读取结果赋值给变量len
            3.(len=fis.read())!=-1判断变量len的值是否等于-1
        数值转字符方法:(char)num
    */
            FileInputStream fis = new FileInputStream("test.txt"); //文件内容abc
            int len=0;
            //每次读取一个字节,读取到文件末尾后调用read()方法会返回-1
            while((len=fis.read())!=-1){
                System.out.print((char)len); //abc
            }
            System.out.println("----");
            fis.close(); //关闭字节流,释放资源
    
    /*  字节流一次读取多个字节方法
        int read(byte[] b)
            1.参数byte[] b:起缓冲作用,存储每次读取到的多个字节;数组的长度一般定义为1024(1kb)或者1024的倍数
            2.方法的返回值:每次读取的有效字节个数
    */
            FileInputStream fis2 = new FileInputStream("test.txt");
            byte[] buff=new byte[1024];
            int rlen=0;
            while ((rlen=fis2.read(buff))!=-1){ //文件尾再读取返回值-1
                System.out.println(new String(buff,0,rlen)); //写入读取的有效字节个数,从下标0开始rlen个
            }
            fis2.close();
        }
    }
  • 相关阅读:
    Java 对象容器
    Java 类与对象
    Java 数组 字符 函数
    C++ 趣图
    数据管理系统想要实现的功能?
    Incorrect integer value: '' for column 'mid' at row 11366Incorrect integer value: '' for column 'mid' at row 1,自增字段为空,添加记录时出错
    关于汉字参数在链接参数中,接收后显示为问号乱码的问题该如何解决?
    原生js实现文字无缝向上滚动效果
    在php中如何用 union all统计总条数?
    在php中修改cookie值遇到的奇怪问题
  • 原文地址:https://www.cnblogs.com/sdlz/p/12771579.html
Copyright © 2011-2022 走看看