字节流跟字符流的区别

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("log4j.properties");
        InputStream inStream = new FileInputStream(file);
        properties.load(inStream);
    获取:
        properties结构:跟map一样是属于字典类型的数据结构。
        取数据:properties.getProperty(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>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.17</version>
        </dependency>

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

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值