字节流跟字符流的区别

时间:2025-03-08 07:57:50

1、字节流 :字节读写,  字节流(ASCII)处理二进制文件。

       可以传输音频,视频,图片,文本等,传输数据的基本单位为字节。

         InputStream OutputStream 

2、字符流:快读写 ,字符流(Unicode)处理文本文件。

     只能传输纯文本, 传输数据的基本单位为字符 。

      FileWriter FileReader 一个字符等于2个字节

 

IO流:
        流向:
            输入流 read  读
                InputStream
                FileInputStream
                FileReader
            输出流 write 写
                OutputStream
                FileOutputStream
                FileWriter
        类型
            字节流(读写任意文件) 1 1 1 1 1
                FileInputStream
                FileOutputStream
            字符流(只能读写纯文本文件)中文  4  2
                FileReader
                FileWriter
        关流
            用完之后关闭流。
            对文件进行读或者写,只能用IO流。
        File                  FileInputStream(读)   FileOutputStream(写)

 

 

 properties文件:项目当中比较常见的配置文件。
    特点:以键值对的形式保存数据
    作用:通过将系统配置定义在properties文件的形式来实现代码解耦。
    
    解析:
        Properties properties = new Properties();
        File file = new File("");
        InputStream inStream = new FileInputStream(file);
        (inStream);
    获取:
        properties结构:跟map一样是属于字典类型的数据结构。
        取数据:(key)。
    IO流:
        流向:
            输入流 read  读
                InputStream
                FileInputStream
                FileReader
            输出流 write 写
                OutputStream
                FileOutputStream
                FileWriter
        类型
            字节流(读写任意文件) 1 1 1 1 1
                FileInputStream
                FileOutputStream
            字符流(只能读写纯文本文件)中文  4  2
                FileReader
                FileWriter
        关流
            用完之后关闭流。
            对文件进行读或者写,只能用IO流。
        File                  FileInputStream(读)   FileOutputStream(写)
 
  POI技术
        Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
    maven坐标
        <dependency>
            <groupId></groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.17</version>
        </dependency>

    读:
        // 1、找到excel
        File file = new File("src/test/resources/");
        // 1.1、打开了excel
        Workbook workbook = (file);
        // 2、选择sheet
        Sheet sheet = (0);
        // 3、遍历row
        for (int i = 1; i <= (); i++) {
            // 4、获取row
            Row row = (i); // ctrl + 2 + l
            Cell idCell = (0, MissingCellPolicy.CREATE_NULL_AS_BLANK);
            ();
            Cell nameCell = (1, MissingCellPolicy.CREATE_NULL_AS_BLANK);
            ();
            Cell ageCell = (2, MissingCellPolicy.CREATE_NULL_AS_BLANK);
            ();
            (() + "," + () + ","
                    + ());
        }
    
    写:
        // 1、找到excel
        //输入流 把文件读入到java内存中
        FileInputStream fis = new FileInputStream("src/test/resources/");
        // 1.1、打开了excel
        Workbook workbook = (fis);
        // 2、选择sheet
        Sheet sheet = (0);
        Row row = (1);
        Cell cell = (1, MissingCellPolicy.CREATE_NULL_AS_BLANK);
        ();
        ("张三2");
        //输出流,把java内存中的内容写到文件中
        FileOutputStream fos = new FileOutputStream("src/test/resources/");
        (fos);
        ();