黑马程序员技术交流社区

标题: 第21天-09,为什么bufw.write((stu.getSum));这句会出现乱码? [打印本页]

作者: 马睿    时间: 2012-9-15 12:37
标题: 第21天-09,为什么bufw.write((stu.getSum));这句会出现乱码?
毕老师代码
  1.     public static void wirte2File(Set<student> stus) throws IOException
  2.     {
  3.         BufferedWriter bufw = new BufferedWriter(new FileOutputStream("stuinfo.txt"));
  4.         
  5.         for ( Student stu : stus )
  6.         {
  7.             bufw.write(stu.toString() + "\t");

  8.             /*为何此处改成bufw.write(stu.getSum() + “”);则不会再有乱码?*/
  9.             bufw.write(stu.getSum());
  10.             bufw.newLine();
  11.             bufw.flush();
  12.         }
  13.     }
复制代码

作者: 佟亚鹏    时间: 2012-9-15 12:51
解决乱码问题,首先要找到在哪个过程中出现的,你的Student类的sum字段,是不是int类型的,如果是int类型,会使用BufferedWriter 的这个方法

public void write(int c)
会把你的int值转化为字符,写出去,加一个""号转换为字符串就不会乱码,这就是乱码产生的原因,你可是试试把stu.的sum值改为97,看看是不是会出现a这个字符




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