`
yangchongjiao
  • 浏览: 11339 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java读写txt文件中文乱码问题

    博客分类:
  • java
阅读更多

 

问题:在用Java程序进行读写含中文的txt文件时,经常会出现读出或写入的内容会出现乱码。原因其实很简单,就是系统的编码和程序的编码采用了不同的编码格式。通常,假如自己不修改的话,windows自身采用的编码格式是gbk(gbkgb2312基本上是一样的编码方式),IDEEncode不修改的话,默认是utf-8的编码,这就是为什么会出现乱码的原因。当在OS下手工创建并写入的txt文件(gbk),用程序直接去读(utf-8),就会乱码。为了避免可能的中文乱码问题,最好在文件写入和读出的时候显式指定编码格式。

 

1、写文件:

 

  public static void writeFile(String fileName, String fileContent)   

   {     

   try   

     {      

         File f = new File(fileName);      

          if (!f.exists())   

           {       

              f.createNewFile();      

          }      

          OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f),"gbk");      

       BufferedWriter writer=new BufferedWriter(write);          

          writer.write(fileContent);      

          writer.close();     

      } catch (Exception e)   

      {      

         e.printStackTrace();     

      }  

  }  

 

public static void writeFile(String fileName, String fileContent)

 

{  

 

  try

 

2、读文件:

 

 

   public static String readFile(String fileName) 

  {

       String fileContent = "";   

       try  

    {       

           File f = new File(fileName);      

           if(f.isFile()&&f.exists())  

          {       

               InputStreamReader read = new InputStreamReader(new FileInputStream(f),"gbk");       

              BufferedReader reader=new BufferedReader(read);       

             String line;       

              while ((line = reader.readLine()) != null)   

              {        

                  fileContent += line;       

              }         

             read.close();      

         }     

     } catch (Exception e)   

   {         

         e.printStackTrace();     

     }     

    return fileContent;   

 }   

 

  public static String readFile(String fileName)

 

  {  

 

   String fileContent = "";  

 

      try

 

      {    

 

        File f = new File(fileName);   

 

        if(f.isFile()&&f.exists())

 

        {    

 

         InputStreamReader read = new InputStreamReader(new FileInputStream(f),"gbk");    

 

         BufferedReader reader=new BufferedReader(read);    

 

         String line;    

 

         while ((line = reader.readLine()) != null)

 

         {     

 

           fileContent += line;    

 

         }      

 

         read.close();   

 

        }  

 

      } catch (Exception e)

 

      {      

 

        e.printStackTrace();  

 

      }  

 

      return fileContent;

 

  }

 


 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics