天天看点

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();
      }
    }
    
  }

}