字符流读取文本文件的编码问题
来源:互联网 发布:淘宝优惠券qq群 编辑:程序博客网 时间:2024/04/29 06:45
使用字符流包装字节流时,
如果没有设置字符集,默认使用环境变量相关的字符集进行转码,
FileReader实例化时不能指定字符集,它只能使用默认的编码,
如果没有设置字符集,默认使用环境变量相关的字符集进行转码,
这样会出现代码移植的不确定性,所以应该在实例化字符流时自己设定字符集
new InputStreamReader(InputStream,Charset.forName("UTF-8"))
FileReader实例化时不能指定字符集,它只能使用默认的编码,
所以读取文本文件时最好使用new InputStreamReader(new FileInputStream(),Charset)方式取代new FileReader()
@Testpublic void test01(){BufferedReader reader=null;try {String str=null;String filePath="E://test.txt";//文件使用UTF-8编码reader=new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));str=reader.readLine();System.out.println("使用默认编码:"+str);reader=new BufferedReader(new InputStreamReader(new FileInputStream(filePath),Charset.forName("GBK")));str=reader.readLine();System.out.println("使用GBK编码:"+str);reader=new BufferedReader(new InputStreamReader(new FileInputStream(filePath),Charset.forName("UTF-8")));str=reader.readLine();System.out.println("使用UTF-8编码:"+str);reader=new BufferedReader(new FileReader(filePath));str=reader.readLine();System.out.println("使用FileReader读取:"+str);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally{try {reader.close();} catch (IOException e) {e.printStackTrace();}}}
0 0
- 字符流读取文本文件的编码问题
- vim读取windows下的中文文本文件编码问题
- 判断字符流是不是UTF-8编码格式(读取文本文件需要转码时使用)
- 文本文件的编码格式问题
- 探测文本文件编码的问题
- 正确读取 ANSI 编码的文本文件 UTF8
- Python 3 读取不同编码的文本文件
- 文本文件与字符编码
- 解析 读取输出字符文档的编码问题
- java读取默认编码是ansi的文本文件时,解决中文乱码问题
- 关于IO流中字符流去读文本文件的问题
- 文本文件中读取中文乱码的问题
- java 读取文本文件的乱码问题???
- 【Q&A】getline读取文本文件的问题
- 关于java读取文本文件乱码的问题
- python读取中文字符编码问题
- Python读取文件字符编码问题
- 字符的编码问题
- LeetCode算法编程(两题)
- 3Sum Closest
- eclipse 设置注释模板& 调出注释快捷键
- java 笔记
- 数据库连接池--概述以及DBCP实现
- 字符流读取文本文件的编码问题
- 《Visual C++ 2010入门教程》系列五:合理组织项目、使用外部工具让工作更有效
- 警惕:移动应用App背后的安全危机!
- [Hibernate Search] (4) 实体类型的高级映射功能
- Android开发问题汇总
- 正则表达式-速查表和例子
- 内核中的_OBJECT_INFORMATION_CLASS 结构
- android中fragment仿造Activity实现Ontouch的原理
- C++中四种强制类型转换的区别