黑马程序员技术交流社区

标题: IO流创建文件写入汉字为什么会乱码? [打印本页]

作者: 殷俊    时间: 2015-3-25 17:31
标题: IO流创建文件写入汉字为什么会乱码?
本帖最后由 殷俊 于 2015-3-26 12:05 编辑

代码如下
  1. /*
  2. 复制
  3. */
  4. import java.io.*;
  5. class IODemo1
  6. {
  7.         public static void main(String[] args)
  8.         {
  9.                 FileWriter fw=null;
  10.                 FileReader fr=null;
  11.                 try
  12.                 {
  13.                         fw=new FileWriter("FileDemo1.txt");
  14.                         fr=new FileReader("FileDemo.txt");
  15.                         FileWriter fw1=new FileWriter("FileDemo.txt",true);
  16.                         fw1.write("你好,生活如此残酷,我却如此淡定!!\r\n这样不好不好!!");
  17.                         fw1.flush();
  18.                         char[] buf=new char[1024];
  19.                         int num=0;;
  20.                         while((num=fr.read(buf))!=-1)
  21.                         {
  22.                                 fw.write(buf,0,num);
  23.                         }
  24.                 }
  25.                 catch (IOException e)
  26.                 {
  27.                         System.out.println("Hello World!");
  28.                 }
  29.                 finally
  30.                 {
  31.                         try
  32.                         {
  33.                                 if(fw!=null)
  34.                                         fw.close();
  35.                         }
  36.                         catch (IOException e)
  37.                         {
  38.                                 System.out.println("Hello World!");
  39.                         }
  40.                         try
  41.                         {
  42.                                 if(fr!=null)
  43.                                         fr.close();

  44.                         }
  45.                         catch (IOException e)
  46.                         {
  47.                                 System.out.println("Hello World!");
  48.                         }
  49.                 }
  50.                
  51.         }
  52. }
复制代码


无标题.png (88.58 KB, 下载次数: 32)

无标题.png

作者: 翰墨    时间: 2015-3-26 08:57
你这个程序就创建了一个FileDemo1.txt文档啊。当读到try语句里面第二句fr=new FileReader("FileDemo.txt");发现FileDemo.txt不存在,下面语句都都读不到,直接执行catch语句,打印一行Hello World!程序就结束了。
作者: 翰墨    时间: 2015-3-26 09:02
先执行fw1,创建一个FileDemo.txt文档,并write写入数据并刷新,在执行读fr,即把fw1语句放到try语句开始。
                        FileWriter fw1=new FileWriter("FileDemo.txt",true);
                        fw1.write("你好,生活如此残酷,我却如此淡定!!\r\n这样不好不好!!");
                        fw1.flush();
                        fw=new FileWriter("FileDemo1.txt");
                        fr=new FileReader("FileDemo.txt");
                                               
作者: 殷俊    时间: 2015-3-26 12:02
翰墨 发表于 2015-3-26 09:02
先执行fw1,创建一个FileDemo.txt文档,并write写入数据并刷新,在执行读fr,即把fw1语句放到try语句开始。
...

你好,谢谢你的回答,问题已经解决了,原来是源文件的编码有问题,出问题的时候是utf8的,我另存为ANSI的以后就好了,感谢你热情的回答,其实我的代码没有问题,我是之前已经建好了一个FileDemo.txt文件,然后进行的续写入而已,谢谢你
作者: 翰墨    时间: 2015-3-27 09:59
殷俊 发表于 2015-3-26 12:02
你好,谢谢你的回答,问题已经解决了,原来是源文件的编码有问题,出问题的时候是utf8的,我另存为ANSI的 ...

好吧,我说怎么在我电脑上面编写就没问题呢,原来是编码问题
作者: only是爱    时间: 2015-8-20 12:44
感觉看不懂的节奏,
作者: JXHIUUI    时间: 2015-8-20 14:09
殷俊 发表于 2015-3-26 12:02
你好,谢谢你的回答,问题已经解决了,原来是源文件的编码有问题,出问题的时候是utf8的,我另存为ANSI的 ...

我也觉得是编码格式的问题,不过解决了就好!
作者: boboyuwu    时间: 2015-8-20 15:57
有个问题你建了2个filewrite对象但是后面的文件都是一样的完全没意义啊
作者: 殷俊    时间: 2015-8-20 19:19
boboyuwu 发表于 2015-8-20 15:57
有个问题你建了2个filewrite对象但是后面的文件都是一样的完全没意义啊

第二个是为了测试追加的,没有用上,所以看着多余
作者: JXHIUUI    时间: 2015-8-20 20:51
我擦,为哈子你有那么多黑马币,这不科学啊
作者: 殷俊    时间: 2015-8-20 20:56
JXHIUUI 发表于 2015-8-20 20:51
我擦,为哈子你有那么多黑马币,这不科学啊

{:3_67:}我可以奋斗了一年多了,才这么点,你难道比我还时间长?
作者: JXHIUUI    时间: 2015-8-20 22:41
殷俊 发表于 2015-8-20 20:56
我可以奋斗了一年多了,才这么点,你难道比我还时间长?

为什么一年了还在奋斗?还没进黑马呢?

作者: 殷俊    时间: 2015-8-20 22:43
JXHIUUI 发表于 2015-8-20 22:41
为什么一年了还在奋斗?还没进黑马呢?

因为之前一直在学校,现在刚毕业




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2