zoukankan      html  css  js  c++  java
  • InputStream (字节流读取)

    InputStream (字节流读取)

    java.io.InputStream InputStream是一个抽象类. 字节流可以操作任何类型的2进制文件

    InputStream常用实现类的继承关系

    • java.lang.Object
      • java.io.InputStream
        • java.io.FileInputStream
          • java.io.BufferedInputStream

    常用子类就是FileInputStream 和 BufferedInputStream

    InputStream共性方法 (子类通用)

    返回值和修饰符 方法 说明
    void close() 关闭此输入流并释放与该流关联的所有系统资源。
    (推荐在finally中关闭)
    abstract int read() 从输入流中读取数据的下一个字节。
    int read(byte[] b) 从输入流中读取一定数量的字节,
    并将其存储在缓冲区数组 b 中。
    int read(byte[] b, int off, int len) 将输入流中最多 len 个数据字节读入 byte 数组。

    FileInputStream子类

    (普通流)作为子类,我们可以学习他的创建对象的方式,而方法都是从父类继承来的。一个一个读取

    构造方法

    构造方法 说明
    FileInputStream( String name ) 传入一个文件路径
    FileInputStream( File file ) 传入一个FIle对象

    读取文件示例:

    main方法中代码

    try {
        // 1. 创建对象 -- 参数是文件路径
        String path = "D:\DEV\eclipse\workspace\day13\testIO.txt";
        InputStream in = new FileInputStream(path);
        // 第二种方式创建对象 -- 参数是一个File对象
        // InputStream in = new FileInputStream(new File(path));
        // 2. 开始读取	
        int b = -2;
        while ((b = in.read()) != -1) {
            System.out.println(b);
        }
        // 释放资源
        in.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    

    BufferedInputStream子类

    BufferedInputStream(也称为 缓冲流) 为另一个输入流添加一些功能,创建一个内部缓冲区数组。(高效), 按块读取, 默认缓冲区大小: 8192(8KB), 这个缓冲区默认最合适, 一般不需要修改

    构造器

    第二种不常用, 默认缓冲区大小性能已经很好了, 一般不修改

    构造器 说明
    BufferedInputStream( InputStream in ) 一般 传入一个FileInputStream
    BufferedInputStream( InputStream in, int size ) size是指定缓存区大小,(一般不用)系统默认是8192(8KB)

    读取文件实例:

    main方法中代码

    try {
        // 1. 创建对象
        String path = "D:\DEV\eclipse\workspace\day13\testIO.txt";
        InputStream in = new BufferedInputStream(new FileInputStream(path));
        // 2. 开始读取
        int b = 0;
        while ((b = in.read()) != -1) {
            System.out.println(b);
        }
        // 3. 释放资源
        in.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    
  • 相关阅读:
    每天学习一个设计模式(十二):创建型之单例模式
    每天学习一个设计模式(十一):创建型之原型模式
    每天学习一个设计模式(十):创建型之工厂方法模式
    每天学习一个设计模式(九):创建型之建造者模式
    数据库
    操作系统
    计算机网络
    Java 基础知识
    Linux基本操作
    git 基本操作
  • 原文地址:https://www.cnblogs.com/zpKang/p/12917719.html
Copyright © 2011-2022 走看看