public String readFile(String filename) throws Exception 
   {
      //Read the file into a string buffer, then return as a string.
      StringBuffer buf;//the intermediary, mutable buffer
      BufferedReader breader;//reader for the template files
      try 
      {
         breader = new BufferedReader(new FileReader(filename));//header
         buf = new StringBuffer();
         while(breader.ready()) 
            buf.append((char)breader.read());
         breader.close();
      }//try
      catch(Exception e) 
      {
         throw e;
      }//catch
      return buf.toString();
   }//readFile   public void writeFile(String str, String filename) throws Exception 
   {
      // Open a writer to the file, then write the string.
      BufferedWriter bwriter;//writer to the file
      String fullfilepath;//path for the output file
      try 
      {
         bwriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename)));
         bwriter.write(str);
         bwriter.flush();
         bwriter.close();
      }//try
      catch(Exception e) 
      {
         throw e;
      }//catch
   }//writeFile

解决方案 »

  1.   

    你好,我试了一下你所写的代码,我读入中文字符可以将其写成两个字节,但是读入e文字符后写入文件的还是一个字符,我希望的是e文字符写入文件也是两个字节,就是纯粹用unicode方式写入文件。谢谢你
      

  2.   

    是不是sun只实现了utf-8?那ascii就是一字节
      

  3.   

    把楼上的改一下,生成OutputStreamWriter时加上字符编码:
    bwriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename))); 
    改成
    bwriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename), "UTF-16"));
    注意,Unicode的双字节表现形式不止一种,请注意Unicode与其表现形式的区别。