黑马程序员技术交流社区

标题: 用多线程复制出的文本打开是乱码?如何解决? [打印本页]

作者: 姜志钦    时间: 2012-4-13 10:00
标题: 用多线程复制出的文本打开是乱码?如何解决?
  1. class ReadWriter implements Runnable{

  2.     @Override
  3.     public void run() {
  4.         FileWriter fw=null;    //写入流对象
  5.         FileReader fr=null;    // 读取流对象
  6.         int len=0;
  7.         char [] chars=new char[1024];
  8.         try{
  9.             fw=new FileWriter("IOCopy.txt");
  10.             fr=new FileReader("IO.txt");
  11.             while ((len=fr.read(chars))!=-1){
  12.                 fw.write(chars,0,len);
  13.                 fw.flush();
  14.             }
  15.         }catch (IOException e){
  16.             e.printStackTrace();
  17.         } finally {
  18.             if (fr != null) {
  19.                 try {
  20.                     fr.close();  //关闭读取流
  21.                 } catch (IOException e) {
  22.                     e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
  23.                 }
  24.             }
  25.             if (fw != null) {
  26.                 try {
  27.                     fw.close();   //关闭写入流
  28.                 } catch (IOException e) {
  29.                     e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
  30.                 }
  31.             }
  32.         }
  33.     }
  34. }
  35. public class IOThreadDemo {
  36.     public static void main(String[] args) {
  37.      /* ReadWriter rw=new ReadWriter();
  38.         Thread t1=new Thread(rw);
  39.         Thread t2=new Thread(rw);
  40.         t1.start();
  41.         t2.start();*/
  42.            ExecutorService exec=Executors.newCachedThreadPool();
  43.         exec.submit(new ReadWriter());
  44.         exec.shutdown();
  45.     }
  46. }
复制代码
同标题,如何处理复制后文本打开是乱码?

作者: 蒋亮    时间: 2012-4-13 11:04
出现乱码的话,是编码格式的问题,我运行了你的代码,没错啊
作者: 黑马-刘昌文    时间: 2012-4-13 11:07
看编码和解码是不是一致?
作者: 姜志钦    时间: 2012-4-13 11:36
黑马-刘昌文 发表于 2012-4-13 11:07
看编码和解码是不是一致?

怎么看?
作者: 黑马-刘昌文    时间: 2012-4-13 11:42
姜志钦 发表于 2012-4-13 11:36
怎么看?

一般系统默认的是编码是gbk,你打开复制的文件的时候也要用gbk的编码去打开!
作者: 姜志钦    时间: 2012-4-13 13:04
黑马-刘昌文 发表于 2012-4-13 11:42
一般系统默认的是编码是gbk,你打开复制的文件的时候也要用gbk的编码去打开! ...

我在写笔记的时候,记事本默认是ANSI编码格式,写代码复制编译的时候是UTF-8;所以才会出现乱码;记事本另存为UTF-8的编码格式就可以解决了。




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