【字节流】读数据(一次读一个字节数组数据)

字节流读数据(一次读一个字节数组数据)

1.需求: 把文件fos.txt中的内容读取出来在控制台输出

2.思路:

  • 创建字节输入流对象
  • 调用字节输入流对象的读数据方法
  • 释放资源
package com.bytestream;
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamDemo02 {
    public static void main(String[] args) throws IOException {
        //创建字节输入流对象
        FileInputStream fis = new FileInputStream("基础语法\\fos.txt");
        //int read(byte[] b):从该输入流读取最多 b.length个字节的数据到一个字节数组
        byte[] bys=new byte[5];
        //第一次读取数据
        int len = fis.read(bys);
        System.out.println(len);
        //String (byte[] bytes)
        System.out.println(new String(bys));
        //第二次读取数据
        len = fis.read(bys);
        System.out.println(len);
        //String (byte[] bytes)
        System.out.println(new String(bys));
        //第三次读取数据
        len = fis.read(bys);
        System.out.println(len);
        System.out.println(new String(bys));
        fis.close();
    }
}

一次读取5个字节的数据,第一次读取到的字节长度为5,数据为hello;第二次读取到字节长度为5,因为hello和world之间有换行\r\n,所以第二次读取到数据为\r\nwor,控制台输出的结果是一个换行和wor;第三次读取到字节为2,使用ld替换掉第二次\r\n两个字节,因为第二次的读取到的字节长度为5,所以也得替换5个字节,\r\n还需要把wor加上。注意这里的len输出的并不是数组的长度,而是每次读取到实际数据的字节长度。
【字节流】读数据(一次读一个字节数组数据)_第1张图片
【字节流】读数据(一次读一个字节数组数据)_第2张图片

循环改进读数据

package com.bytestream;
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamDemo02 {
    public static void main(String[] args) throws IOException {
        //创建字节输入流对象
        FileInputStream fis = new FileInputStream("基础语法\\fos.txt");
        //循环改进
        byte[] bys=new byte[1024];//1024及其整数倍
        int len;
        while ((len=fis.read(bys))!=-1){
            System.out.print(new String(bys,0,len));
        }
        fis.close();
    }
}

【字节流】读数据(一次读一个字节数组数据)_第3张图片

你可能感兴趣的:(python,java,开发语言)