转化流原理

【java笔记】转换流_表名

 OutputStreamWriter:

继承了Writer,是字符通向字节流的桥梁,可使用指定的charset将要写入流中的字符编码写成字节

构造方法:

OutputStreamWriter(OutputStream out):创建使用默认字符编码的OutputStreamWriter

OutputStreamWriter(OutputStream out,String charsetName):创建使用指定字符集的OutputStreamWriter

out可以写转换之后的字节到文件中

charsetName:指定的编码表名称,不区分大小写。不指定默认使用UTF-8

使用步骤:

1、创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称

2、使用OutputStreamWriter对象中的方法,把字符转换为字节储存到缓冲区中(编码)

3、使用OutputStreamWriter对象中的方法flush,把内存缓冲区的字节刷新到文件中(使用字节流写字节的过程)

4、释放资源

OutputStreamWriter osr=new OutputStreamWriter(new FileOutputStream("d://a.txt"),"utf-8");
String s="你好";
osr.write(s);
osr.flush();
osr.close();
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

InputStreamReader:字符缓冲输入流

【java笔记】转换流_构造方法_02

使用步骤:

1、创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称

2、使用InputStreamReader对象中的方法read读取文件

3、释放资源

注意事项:构造方法中指定的编码表名称要和文件的编码相同,否则会发生乱码

InputStreamReader isr=new InputStreamReader(new FileInputStream("d:\\a.txt"),StandardCharsets.UTF_8);
int len=0;
  while((len=isr.read())!=-1){
      System.out.print((char)len);
  }
 isr.close();
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.