代码大概如下:
--------------读
        InputStreamReader read = new InputStreamReader (new FileInputStream(excel),inEncode);
        BufferedReader br = new BufferedReader(read);
--------------写
File outFile = new File(excel.getPath().substring(0,excel.getPath().lastIndexOf("."))+".txt");
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(outFile),outEncode); 
BufferedWriter bw = new BufferedWriter(write);
----------------------- 在将内容写到文件的时候出现乱码-------------------------------
bw.write(content);
bw.newLine();
-------------------------打印出来是正常的
System.out.println(content);大家帮忙看下,感激不尽!

解决方案 »

  1.   

    其实你不能相信System.out.println
    (虽然我们常说 眼见为实)你需要确定文件中的字节二进制编码是否正确。有时编码是对的,看的方式不对而已。
      

  2.   


    OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(outFile),outEncode); 
    设置编码了啊,
    你说的写的时候也要设置编码,怎么设置?能说详细点吗 谢啦
      

  3.   

    content怎么来的?
    bw.write(new String(content.getBytes(), outEncode)); //or content.getBytes(inEncode)
    bw.newLine();
      

  4.   

    重要看两点
    第一 你写的时候是否设置字符编码
    第二 你用文本编辑器打开看的时候 要设置一下文本编辑器的编码
    例如 你用utf-8写的文件 如果文本编辑器此时的编码是ANSI 也是会看到乱码滴
      

  5.   

    String content = "";
    while((content=br.readLine())!=null){
         bw.write(content);
         bw.newLine();
         System.out.println(content);
    }是这样写的
      

  6.   

    综合你顶楼和6楼的代码,你用一个字符集打开了源,用另一个字符集写了目标文件。
    可以说:只要你没有指错源文件的字符集(估计是的,因为print到控制台对的),那么你最终得到的文件中不是乱码。请选择合适的字符集来查看目标文件。
      

  7.   

    读写文件最好用字节流。。还有把你的目的详细说下,把你完整的代码贴出来你这样我都很难重复展现的你问题。。还有7楼也太水了吧。。人家有说过是Web项目了么??文件的读写用毛毛的过滤器啊!~~
      

  8.   

    File outFile = new File(excel.getPath().substring(0,excel.getPath().lastIndexOf("."))+".txt");
      你把文件强制转型了吧,不转型应该不会的乱了
      

  9.   

    你可以试一下,新建一个.xls文件 然后改名为 .TXT文件,你就会发现已经乱码了  所以不是你程序的问题是你不应该强转文件名
      

  10.   

    inEncode和outEncode是否一样的,如果不一样content就要转换编码
    content = new String(content.getBytes(inEncode), outEncode); 
    bw.write(content); 
    bw.newLine();