说明
OutputStreamWriter
是 从字符流到字节流的桥梁:将 字符 按照指定的 charset
转成 字节,然后写入到流中。
如果不指定字符集,用平台的默认字符集。操作系统默认字符集:
- windows10、linux、macos,默认字符集是
UTF-8
- windows8以前,默认字符集是
GBK
构造方法
创建一个使用默认字符编码的OutputStreamWriter:
OutputStreamWriter(OutputStream out)
创建一个使用给定字符集的OutputStreamWriter:
OutputStreamWriter(OutputStream out, Charset cs)
创建一个使用命名字符集的OutputStreamWriter:
OutputStreamWriter(OutputStream out, String charsetName)
使用
通常 搭配 BufferedWriter
使用,该类支持 newLine()
方法,输出一个换行符,该换行符与平台有关
- Windows系统里,换行是
\r\n
; - Unix、linux、Mac OS系统里,换行是
\n
;
例子
public static void write(String path,String charset,String content) throws IOException{
BufferedWriter bw = null;
OutputStreamWriter osw = null;
FileOutputStream fos = null;
try{
fos = new FileOutputStream(path);
osw = new OutputStreamWriter(fos,charset);
bw = new BufferedWriter(osw);
bw.write(content);
}finally{
if(bw!=null){
bw.close();
}
if(osw != null){
osw.close();
}
if(fos != null){
fos.close();
}
}
}
测试:
public static void main(String[] args) {
try {
S1读写文本文件封装类.write("d:\\2.txt", "UTF-8", "好好学习!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}