把fileContent用 getBytes(编码1),编码2 这种形式改一下.

解决方案 »

  1.   

    好像getBytes不起作用,我的读的方法如下,大家帮帮忙!!!
     /**
         * 读取文本文件内容
         * @param filePathAndName 带有完整绝对路径的文件名
         * @param encoding 文本文件打开的编码方式
         * @return 返回文本文件的内容
         */
        public String readTxt(String filePathAndName,String encoding){
                encoding = encoding.trim();
                StringBuffer str = new StringBuffer("");
                String st = "";
                try{
                        FileInputStream fs = new FileInputStream(filePathAndName);
                        InputStreamReader isr;
                        if(encoding.equals("")){
                                isr = new InputStreamReader(fs);
                        }else{
                                isr = new InputStreamReader(fs,encoding);
                        }
                        BufferedReader br = new BufferedReader(isr);
                        try{
                                String data = "";
                                while((data = br.readLine())!=null)
                                {
                                    str.append(data+"\n");
                                }
                        }catch(Exception e){
                                str.append(e.toString());
                        }finally{
                    br.close();
                            isr.close();
                    fs.close();
                }
                        st = str.toString();
                }catch(IOException es){
                        st = "";
                }
                return st;
        }
      

  2.   

    PrintWriter myFile = new PrintWriter(myFilePath,encoding);
                String strContent = fileContent;
                myFile.println(strContent);
                myFile.close();
    --------
    PrintWriter myFile = new PrintWriter(myFilePath);
                String strContent = fileContent;
                myFile.println(new String(strContent.getBytes(encoding)));
                myFile.close();
      

  3.   

    PrintWriter myFile = new PrintWriter(myFilePath); 系统会报异常 如下:
    "FileOperate.java": incompatible types; found   : java.io.FileWriter, required: java.io.PrintWriter at line 183, column 35
      

  4.   

    PrintWriter myFile = new PrintWriter(new FileWriter(myFilePath));
      

  5.   

    我这样改了一下,大部分汉字可以,但是有些汉字还是乱码,啥原因呀,编码是UTF-8 
    PrintWriter myFile=new PrintWriter(new FileWriter(myFilePath));
     String strContent = new String(fileContent.getBytes(encoding));
    myFile.println(strContent);
    myFile.close();
      

  6.   

    FileOutputStream fileWriter = new FileOutputStream(file);
    OutputStreamWriter outStreamWriter = new OutputStreamWriter(fileWriter, "gb2312");
    PrintWriter print = new PrintWriter(outStreamWriter);
    项目中使用...
      

  7.   

    正好我也有关于转码的一个项目:
    起初项目是工作在Win2k下, 文件的r/w一切正常, 后来在MAC机下测试, 发现r/w全是乱码, 组长说MAX OS2使用UTF-8编码,后来分析:win2k(中文版)默认使用gb2312/gbk, MAC OS2使用UTF-8, 在对 String对象的业务修改时, 已把它转化为Gb2312,但存/取时Java按他本地编码存, 所以全是???,后来改为上面那段代码就好了.  需要注意一点, 如果String已是UTF-8, 再使用gb2312toUTF-8转码的话, 那么串又会产生"??".