转换流概述
1、转换流概述
OutputStreamWriter:字符输出流——写出数据
public OutputStreamWriter(OutputStream out)
public OutputStreamWriter(OutputStream out,String charsetName)
InputStreamReader :字符输入流——读取数据
public InputStreamReader(InputStream in)
public InputStreamReader(InputStream in,String charsetName)
2、字符输出流的写数据方法
OutputStreamWriter 写数据方法:
public void write(int c)
public void write(char[ ] cbuf)
public void write(char[ ] cbuf,int off,int len)
public void write(String str)
public void write(String str,int off,int len)
字符流操作要注意的问题:
flush( )的作用
flush( )和close( )的区别
3、字符输入流的读数据方法
InputStreamReader 读数据方法:
public int read( )
public int read(char[] cbuf)
4、 把字节流转换为字符流
* OutputStreamWriter(OutputStream out) :根据默认编码把字节流的数据转换为字符流
* OutputStreamWriter(OutputStream out, String charsetName) :根据指定编码把字节流数据转换为字符流
* 把字节流转换为字符流。
* 字符流 = 字节流 +编码表。
package cn.itcast_02; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; /* * OutputStreamWriter(OutputStream out):根据默认编码把字节流的数据转换为字符流 * OutputStreamWriter(OutputStream out,String charsetName):根据指定编码把字节流数据转换为字符流 * 把字节流转换为字符流。 * 字符流 = 字节流 +编码表。 */ public class OutputStreamWriterDemo { public static void main(String[] args) throws IOException { // 创建对象 // OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream( "osw.txt")); // 默认GBK // OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream( "osw.txt"), "GBK"); // 指定GBK OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream( "osw.txt"), "UTF-8"); // 指定UTF-8 // 写数据 osw.write("中国"); // 释放资源 osw.close(); } }
* InputStreamReader(InputStream is) :用默认的编码读取数据
* InputStreamReader(InputStream is,String charsetName) :用指定的编码读取数据
package cn.itcast_02; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; /* * InputStreamReader(InputStream is):用默认的编码读取数据 * InputStreamReader(InputStream is,String charsetName):用指定的编码读取数据 */ public class InputStreamReaderDemo { public static void main(String[] args) throws IOException { // 创建对象 // InputStreamReader isr = new InputStreamReader(new FileInputStream("osw.txt")); // InputStreamReader isr = new InputStreamReader(new FileInputStream("osw.txt"), "GBK"); InputStreamReader isr = new InputStreamReader(new FileInputStream("osw.txt"), "UTF-8"); // 读取数据 // 一次读取一个字符 int ch = 0; while ((ch = isr.read()) != -1) { System.out.print((char) ch); } // 释放资源 isr.close(); } }