转换流概述
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();
}
}