OutputStreamWriter
java.io.OutputStreamWriter extends Writer
OutputStreamWriter:是字符流通想字节的桥梁:可以使用指定的charset将要写入流中的字符编码成字节(编码:把能看懂的变成看不懂)
继续自父类的共性成员方法:1、void write(int c)写入单个字符
2、void write(char[] cbuf)写入字符数组
3、abstract void write(char[] cbuf,int off,int len)写入字符数组的某一部分,off数组的开始索引,len写的字符个数
4、void write(String str)写入字符串
5、void write(String str,int off,int len)写入字符串的某一部分,off字符串的开始索引,len写的字符个数
构造方法:OutputStreamWriter(OutputStream out)创建使用的默认字符编码的OutputStreamWriter
OutputStreamWriter(OutputStream out,String charsetName)创建使用指定字符集的OutputStreamWriter
参数:OutputStream out:字节输出流可以用来写转换之后的字节到文件中
String charsetName:指定的编码来名称不区分大小写可是utf-8/UTF-8,gbk/GBK不指定默认使用UTF-8
使用步骤:1、创建OutputStreamWriter对象构造方法中传递字节输出流和指定的编码表名称
2、使用OutputStreamWriter对象中的方法writer,把字符转换为字节存储在缓冲区中(编码)
3、使用OutputStreamWriter对象中的方法flush把内存中的字节刷新到文件中去(使用字节流的过程)
4、释放资源
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class demo02 {
public static void main(String[] args) throws IOException {
write_utf_8();
write_gbk();
}
public static void write_utf_8() throws IOException {//创建OutputStreamWriter对象构造方法中传递字节输出流和指定的编码表名称
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("D:\\BaiduNetdiskDownload\\123.txt"),"utf-8");
//使用OutputStreamWriter对象中的方法writer,把字符转换为字节存储在缓冲区中(编码)
osw.write("你好");
osw.flush();
osw.close();
}
public static void write_gbk() throws IOException {
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("D:\\BaiduNetdiskDownload\\123.txt"),"gbk");
//使用OutputStreamWriter对象中的方法writer,把字符转换为字节存储在缓冲区中(编码)
osw.write("你好");
osw.flush();
osw.close();
}
}
java.io.OutputStreamWriter extends Writer
OutputStreamWriter:是字符流通想字节的桥梁:可以使用指定的charset将要写入流中的字符编码成字节(编码:把能看懂的变成看不懂)
继续自父类的共性成员方法:1、void write(int c)写入单个字符
2、void write(char[] cbuf)写入字符数组
3、abstract void write(char[] cbuf,int off,int len)写入字符数组的某一部分,off数组的开始索引,len写的字符个数
4、void write(String str)写入字符串
5、void write(String str,int off,int len)写入字符串的某一部分,off字符串的开始索引,len写的字符个数
构造方法:OutputStreamWriter(OutputStream out)创建使用的默认字符编码的OutputStreamWriter
OutputStreamWriter(OutputStream out,String charsetName)创建使用指定字符集的OutputStreamWriter
参数:OutputStream out:字节输出流可以用来写转换之后的字节到文件中
String charsetName:指定的编码来名称不区分大小写可是utf-8/UTF-8,gbk/GBK不指定默认使用UTF-8
使用步骤:1、创建OutputStreamWriter对象构造方法中传递字节输出流和指定的编码表名称
2、使用OutputStreamWriter对象中的方法writer,把字符转换为字节存储在缓冲区中(编码)
3、使用OutputStreamWriter对象中的方法flush把内存中的字节刷新到文件中去(使用字节流的过程)
4、释放资源
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class demo02 {
public static void main(String[] args) throws IOException {
write_utf_8();
write_gbk();
}
public static void write_utf_8() throws IOException {//创建OutputStreamWriter对象构造方法中传递字节输出流和指定的编码表名称
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("D:\\BaiduNetdiskDownload\\123.txt"),"utf-8");
//使用OutputStreamWriter对象中的方法writer,把字符转换为字节存储在缓冲区中(编码)
osw.write("你好");
osw.flush();
osw.close();
}
public static void write_gbk() throws IOException {
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("D:\\BaiduNetdiskDownload\\123.txt"),"gbk");
//使用OutputStreamWriter对象中的方法writer,把字符转换为字节存储在缓冲区中(编码)
osw.write("你好");
osw.flush();
osw.close();
}
}
练习
练习:转换文件编码,将GBk编码的文件转换成UTF-8编码的文本文件
分析1、创建InputStreamReader 对象,构造方法中传递字节输入流和指定的编码表名称GBK
2、创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称UTF-8
3、使用InputStreamReader对象中的方法read读取文件
4、使用OutputStreamWriter对象中的方法write把读取的数据写入到文件中
5、释放资源
import java.io.*;
public class demo04 {
public static void main(String[] args) throws IOException {
//创建InputStreamReader 对象,构造方法中传递字节输入流和指定的编码表名称GBK
InputStreamReader isr=new InputStreamReader(new FileInputStream("D:\\BaiduNetdiskDownload\\123.txt"),"GBK");
//创建InputStreamReader 对象,构造方法中传递字节输入流和指定的编码表名称GBK
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("D:\\BaiduNetdiskDownload\\123.txt" ),"utf-8");
//使用InputStreamReader对象中的方法read读取文件
int len=0;
while((len=isr.read())!=-1){
osw.write(len);
}
osw.close();
isr.close();
}
}