天天看點

Writer及其子類的使用

FileWriter

package writer_33;

import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;

//借助字元輸出流Writer-FileWriter往檔案中寫入内容
public class FileWriterDemo {

  public static void main(String[] args) {
    // TODO Auto-generated method stub

    Writer fw=null;
    
    try {
      System.out.println(System.getProperty("file.encoding"));
      fw=new FileWriter("writer.txt");
      //字元輸出流:把一個個位元組輸出流做了包裝,包裝的同時指定字元編碼格式
      
      String s="hello writer,字元輸出流";
      fw.write(s);
      //指定字元串的特定内容寫入檔案
      //fw.write(s, 0, 2);
      fw.flush();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }finally {
      try {
        fw.close();
      } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    
  }

}      

控制台輸出目前的編碼格式

Writer及其子類的使用

字元串寫入writer.txt文檔中

OutputStreamWriter類

package writer_33;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
//借助字元輸出流Writer-OutputStreamWriter往檔案中寫入内容-解決中文亂碼問題
public class OutputStreamWriterDemo {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Writer fw=null;
    FileOutputStream fos=null;
    OutputStreamWriter osw=null;

    try {
      System.out.println(System.getProperty("file.encoding"));
      fos=new FileOutputStream("writer.txt");
      //字元輸出流,把一個位元組輸出流做了包裝,包裝的同時指定字元編碼格式
      osw=new OutputStreamWriter(fos, "GBK");
      String s="hello writer,字元輸出流解決中文亂碼問題";
      osw.write(s);
    } catch ( IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }finally {
      try {
        osw.close();
        fos.close();
      } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    
  }

}