博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java指定编码读写文件
阅读量:6193 次
发布时间:2019-06-21

本文共 1749 字,大约阅读时间需要 5 分钟。

hot3.png

关键字: 读写文件乱码问题

1.读文件 
当时为了数据的可移植性我放弃了使用数据库,将全部数据保存为UTF-8编码的文 
本文件,在.net中读取这种文件秩序只要指定打开文件的编码方式,中文问题就可 
以避免。但是按照我以前的思维,java中不是这么作的,java中都是先读取后转换 
的,最后的结果证明我错了,看来经验主意害死人呀。 
Java代码

File f=new File((new    BoxConfig()).getBaseDir()+"Data\\"+request.getParameter("ID")+".inc");   BufferedReader reader = new BufferedReader(new FileReader(f));   String line;   while((line=reader.readLine())!=null){     strContent+=line;   }  

File f=new File((new BoxConfig()).getBaseDir()+"Data\\"+request.getParameter("ID")+".inc"); BufferedReader reader = new BufferedReader(new FileReader(f));String line; while((line=reader.readLine())!=null){ strContent+=line; }这是我最初的代码f就是我要读取的UTF-8格式的文本文件,这一天中经过了无数次 

的尝试,包括new String(strContent.getBytes("UTF-8"))(其中尝试了N种编码转 
换),System.setProperty("file.encoding","UTF-8")(其中指定了N种编码转换 
),都失败了。终于在Google中无数次查询中得到了一个后来被证明很重要的一条 
信息“读取文件时指定字符编码”,一语点醒梦中人,.net中不就是这么实现的吗? 
走了一圈弯路终于解决了这个问题。 

Java代码

File f = new File("E:\\eclipse\\workspace\\box\\Data\\2003-3-7-100.inc");   InputStreamReader read = new InputStreamReader (new FileInputStream(f),"UTF-8");   BufferedReader reader=new BufferedReader(read);   String line;   while ((line = reader.readLine()) != null) {   System.out.println(line);   }  

File f = new File("E:\\eclipse\\workspace\\box\\Data\\2003-3-7-100.inc"); InputStreamReader read = new InputStreamReader (new FileInputStream(f),"UTF-8"); BufferedReader reader=new BufferedReader(read);String line; while ((line = reader.readLine()) != null) {System.out.println(line); }通过打开文件是指定文件编码的方法把这个问题轻松的解决了。 

最后总结一下:java要读取数据流的时候一定要指定数据流的编码方式(至少读取 
String流的时候要这么作。 

2.写文件 

File file = new File("c:\a.test"); 
Writer writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8"); 
writer.write("中文测试"); 
writer.close();

转载于:https://my.oschina.net/zhenguoguan/blog/138664

你可能感兴趣的文章
flex 属性绑定
查看>>
常用方法
查看>>
asp.net页面间传值的9种方式
查看>>
用操作符函数格式化(c++)
查看>>
HDU4626+博弈
查看>>
Android游戏快速入门(一):基础储备
查看>>
Elasticsearch: Indexing SQL databases. The easy way
查看>>
应用开发框架之——插件、包
查看>>
SQL SERVER中强制类型转换cast和convert的区别
查看>>
备份数据表为insert 脚本
查看>>
ASP.NET MVC中检测浏览器版本并提示下载更新
查看>>
firdac支持的序列和还原格式
查看>>
Online, Cheap -- and Elite
查看>>
python datetime笔记
查看>>
exceptions.IOError: decoder jpeg not available
查看>>
【中文分词系列】 4. 基于双向LSTM的seq2seq字标注
查看>>
正则指引
查看>>
一些专业术语的总结
查看>>
条件变脸pthread_cond_signal丢失问题
查看>>
必须掌握的8个dos命令
查看>>