JAVA学习提高之---- Java读取文件中含有中文的解决办法
来源:互联网 发布:杭州天迈网络好吗 编辑:程序博客网 时间:2024/05/18 00:19
引用:
http://www.lihuasoft.net/article/show.php?id=580
- 折磨了一天的问题,终于在黄昏的时候解决了,现在一吐为快。
- 众所周知,java的中文问题一直是一个老大难的问题,这个现象可以在csdn中java论坛里关于中文乱码的提问率就可以了解到,甚至软件巨人IBM专门开辟了一个解决中文问题的专区,作为一个俗人(一直梦想希望想金凯利那样成为一个“冒牌天神”,只是一直没有成功,也许是因为上帝不照顾中国吧),我也为同意的问题困扰,好在今天解决了。
- 随着我对.net平台的彻底放弃(只是生活所迫,毕竟我还要生活),将原有的资源转到Java平台上来是我当前的一个重要任务之一,说到这里,不得不承认.net对中文问题解决的很好,虽然偶尔也会出现乱码。
- 问题是这样的,我的box(http://www.ibeyond.org/box/)原来是使用asp.net写的(当时只是为了尝试新的技术),当时为了数据的可移植性我放弃了使用数据库,将全部数据保存为UTF-8编码的文本文件,在.net中读取这种文件秩序只要指定打开文件的编码方式,中文问题就可以避免。但是按照我以前的思维,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;
- }
- 这是我最初的代码f就是我要读取的UTF-8格式的文本文件,这一天中经过了无数次的尝试,包括new String(strContent.getBytes("UTF-8"))(其中尝试了N种编码转换),System.setProperty("file.encoding","UTF-8")(其中指定了N种编码转换),都失败了,其中甘苦相信各位经历过被程序折磨的各位看官都有所了解,在此略过。终于在Google中无数次查询中得到了一个后来被证明很重要的一条信息“读取文件时指定字符编码 ”,一语点醒梦中人,.net中不就是这么实现的吗?走了一圈弯路终于解决了这个问题。
- 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流的时候要这么作。
- JAVA学习提高之---- Java读取文件中含有中文的解决办法
- Java读取文件中含有中文的解决办法
- Java读取文件中含有中文的解决办法
- Java读取文件中含有中文的解决办法
- Java读取文件中含有中文的解决办法
- Java读取文件中含有中文的解决办法
- Java读取文件中含有中文的解决办法
- Java读取文件中含有中文的解决办法
- JAVA学习提高之----Propert文件不能保存中文的问题及解决
- JAVA学习提高之----Java的多种方式读写Properties文件
- JAVA学习提高之----CSV文件介绍及与Excel的区别
- JAVA学习提高之----JAVA开源项目之操作csv文件
- JAVA读取中文文件,判断string中含有中文字符,判断某一个字符是否为中文字符
- Java 读取文件 使用BufferReader出现中文乱码的解决办法
- JAVA学习提高之----JAVA读写Properties文件
- Java 对zip文件中含有中文子文件操作
- [-JAVA学习-] tomcat打不开中文文件的问题
- !JAVA学习提高之---- Struts实现多文件上传
- Java 7 路线图更新:反响强烈
- JavaScript[对象.属性.事件]集锦
- 怎样让SQL查询结果不在屏幕上显示?
- javascript继承
- H.324 中文
- JAVA学习提高之---- Java读取文件中含有中文的解决办法
- 块IO层[2]
- 判断用户登陆 页面
- 算法的力量
- 几个重要的基础课程
- 跳转指令
- 用友软件年结真费劲
- Visual C++是什么?!
- ADI Blackfin助力ThinkSmart实现智能视频监控