java字节输入流

字节输入流

  • java.io.InputStream 此抽象类是表示字节1输入流的所有的超类。

    • 定义了所有子类共有的方法:
      • int read() 从输入流中读取数据的下一个字节。
      • int read(byte[] b)从输入流中读取一定熟量的字节,并将其存储在缓冲区数组b中。
      • void close() 关闭输入流,释放资源。
  • java.io.FileInputStream extends InputStream

    • 构造方法:
      • FileInputStream(String name)
      • FileInputStream(File file)
      • 参数:读取文件的数据源

使用步骤:

  1. 创建FileInputStream对象,构造方法中绑定要读取的数据源
  2. 使用FileInputStream对象中的read方法,读取文件
  3. 释放资源
 FileInputStream fs = new FileInputStream("./a.txt");
 //读取一个字节,并返回,读取到末尾返回-1
 //int read = fs.read();
 //System.out.println(read);
 int len = 0;
 while ((len = fs.read())!=-1){
      System.out.println((char)len);
 }
 fs.close();

一次读取多个字节的方法

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

    • 方法返回读取字节的有效个数
  • String类的构造方法

    • String(byte[] bytes):把字节数组转化为字符串
 //读取多个字节
    public static void main(String[] args)throws Exception {
        FileInputStream fs = new FileInputStream("./a.txt");
        //byte [] b=new byte[3];
        //fs.read(b);
        //fs.close();
        //System.out.println(new String(b));
        //读取1kb的数据
        byte[] b = new byte[1024];
        //记录每次读取的有效个数
        int len = 0;
        while ((len = fs.read(b)) != -1) {
            System.out.println(len);
            //使用String的构造方法将字节转化为字符串
            System.out.println(new String(b,0,len));
        }
    }
posted @ 2022-10-06 14:19  彼时听风  阅读(96)  评论(0)    收藏  举报