以下是我一个写入文件的方法,请问为什么我加了UTF-8了,还是有一些乱码呢,之前没加是全乱的,加了大部分好了,还有一些是乱的,谢谢大家
 public void savefile(String filepath,String content) throws FileNotFoundException, IOException{
        char[] buffer = new char[1024];
        BufferedReader bufferedInputStream = new BufferedReader(new StringReader(new String (content.getBytes("UTF-8"))));
        BufferedWriter bufferedOutputStream = new BufferedWriter(new FileWriter(filepath));
        int k = 0;
        while ((k = bufferedInputStream.read(buffer)) != -1) {
            bufferedOutputStream.write(buffer, 0, k);
        }
        bufferedOutputStream.flush();
        bufferedOutputStream.close();
        bufferedInputStream.close();
    }

解决方案 »

  1.   

    把一个String 写入文件中?有这么麻烦吗
      

  2.   

    用 GB2312
            BufferedReader bufferedInputStream = new BufferedReader(new StringReader(new String (content.getBytes("GB2312"))));
      

  3.   


     public void savefile(String filepath,String content) throws FileNotFoundException, IOException{
          BufferedWriter bufferedOutputStream = new BufferedWriter(new FileWriter(filepath));        bufferedOutputStream.write(content);
            bufferedOutputStream.flush();
            bufferedOutputStream.close();
        }
      

  4.   

    bufferedInputStream  这是个Reader你为什么这样命名?看晕了我
      

  5.   

    我跑了一次代码,不加utf-8的时候没有乱码,加上了就出现乱码。
    可能像1楼说的一样,你电脑上字符集有问题
      

  6.   

    会不会你的char[]截取的时候,刚好最后的一位截到半个字,结果部分乱了
    建议把缓冲大点试下
      

  7.   


    public void savefile(String filepath,String content) throws FileNotFoundException, IOException{
            char[] buffer = new char[1024];
            BufferedReader input= new BufferedReader(new StringReader(new String (content.getBytes("UTF-8"))));
            BufferedWriter output= new BufferedWriter(new FileWriter(filepath));
            int k = 0;
            while ((k = input.read(buffer)) != -1) {
                output.write(buffer, 0, k);
            }
            output.flush();
            output.close();
            input.close();
        }
    对不起,是我代码写的不够规范,我重新改一下
      

  8.   

    你java文件是什么编码的??默认应该是GBK的,
    改成这样看看new String(content.getBytes("GBK"), "UTF-8);