Java 字符流进阶
Java字符流进阶核心是处理字符编码与高效缓冲流的应用,解决字节流可能出现的中文乱码问题,并提升IO性能。
1. 核心:解决字符编码问题(转换流)
字节流读取文本时若编码不匹配会乱码,字符流的InputStreamReader和OutputStreamWriter可指定编码,是进阶的关键。
• InputStreamReader:将字节输入流(如FileInputStream)转换为字符输入流,可指定编码(如UTF-8、GBK)。
• OutputStreamWriter:将字符输出流转换为字节输出流,同样支持指定编码,避免写文件时乱码。
示例逻辑:用UTF-8编码读取文本文件
InputStreamReader isr = new InputStreamReader(new FileInputStream("test.txt"), "UTF-8");
2. 高效:缓冲字符流(BufferedReader/Writer)
直接使用FileReader/FileWriter效率低,缓冲流通过内置缓冲区减少IO次数,是实际开发的首选。
• BufferedReader:自带8KB缓冲区,新增readLine()方法,可直接读取整行文本(无需自己拼接字符)。
• BufferedWriter:自带8KB缓冲区,新增newLine()方法,可跨平台输出换行符(Windows\n\r、Linux\n)。
核心优势:比普通字符流快10倍以上,且API更易用(如读整行、跨平台换行)。
3. 特殊场景:处理字符数组与字符串
• CharArrayReader/CharArrayWriter:以字符数组为数据源/目标,适合内存中处理字符数据(如临时缓存文本)。
• StringReader/StringWriter:以字符串为数据源/目标,无需操作文件,常用于字符串的IO风格处理(如解析字符串内容)
更多推荐

所有评论(0)