image.png
    image.png
    readAllBytes() 返回字符数组 读取完所有的字节
    image.png

    1. package com.itheima.d4_byte_stream;
    2. import java.io.*;
    3. /**
    4. * 目标: 使用文件字节输入流一次性读完文件的全部字节,可以解决乱码问题
    5. */
    6. public class FileInputStreamDemo03 {
    7. public static void main(String[] args) throws IOException {
    8. // 1. 创建一个文件字节输入流管道与源文件接通
    9. File f = new File("file-io-app\\src\\data03");
    10. InputStream is = new FileInputStream(f);
    11. // // 2. 定义一个字节数组与文件的大小刚刚一样大 就是这个桶里面装的字节个数和字节大小一样就可以全部读完
    12. // byte[] buffer = new byte[(int) f.length()]; // file类的length方法可以返回文件的大小
    13. // int len = is.read(buffer); // 读取文件的个数(和文件大小一样大,全部读完)
    14. // System.out.println("读取了多少个字节" + len);
    15. // System.out.println("文件大小:" + f.length());
    16. // // 编码,输出
    17. //// System.out.println(buffer); // 这打印的是字节数组的地址
    18. // System.out.println(new String(buffer));
    19. // Java提供了一个API可以读取文件的全部字节(返回一个字节数组) readAllBytes
    20. byte[] buffer = is.readAllBytes(); // 这个返回一个字节数组
    21. System.out.println(new String(buffer)); // 读取完,直接进行编码输出
    22. }
    23. }