【IO编程】7.转换流
时间:2021-07-21
本文章向大家介绍【IO编程】7.转换流,主要包括【IO编程】7.转换流使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
FileReader类读取文本文件默认是按照utf-8编码读取,若文本文件不是utf-8编码则会出现中文乱码情况。转换流可以解决中文乱码问题。
- 介绍
- InputStreamReader: Reader的子类,可以将InputStream(字节流)包装成Reader(字符流)。
- OutputStreamWriter: Writer的子类,可以将OutputStream(字节流)包装成Writer(字符流)。
- 处理纯文本数据时,使用字符流效率更高,并且可以指定编码格式(utf-8、gbk、gb2312、ISO8859-1等)解决中文乱码问题。
案例:将字节流FileInputStream包装成字符流InputStreamReader,对文件按照gbk编码进行读取,进而再包装成BufferedReader。代码如下:
@Test
public void readFile() {
BufferedReader br = null;
String line;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream("e:\\test.txt"), "gbk"));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
案例:将字节流FileOutputStream包装成字符流OutputStreamWriter,对文件按照gbk编码进行写入,进而再包装成BufferedWriter。代码如下:
@Test
public void writeFile() {
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("e:\\test.txt")));
bw.write("hello world");
bw.newLine();
bw.write("hello java");
bw.newLine();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bw != null) {
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
原文地址:https://www.cnblogs.com/haojinglei/p/15039287.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- IntelliJ IDEA 2020.2重磅发布!全面支持Github PR。真香版本?
- 腾讯云智能语音小程序插件实现实时语音识别
- 我还在生产玩 JDK7,JDK 15 却要来了!|新特性尝鲜
- 36个助你成为专家需要掌握的JavaScript概念
- Bulehero 蠕虫病毒安全分析报告
- 一句话加速grep近30倍
- 正道的光!这有个用TensorFlow做的小黄图过滤器
- Bytom侧链Vapor源码浅析-节点出块过程
- Logstash: 启动监控及集中管理
- 渗透测试中文件上传技巧
- PHP常见过WAF webshell及最简单检测方法
- 基于PhantomJS的动态爬虫引擎
- XSS Cheat Sheet
- 免费代理池的实现与优化
- 基于Django和clean-blog前端框架的博客系统