字节字符转换流学习

字节字符转换流

转换流,可以将一个字节流转换为字符流,也可以将一个字符流转换为字节流。

OutputStreamWriter:可以将输出的字符流转换为字节流的输出形式。
InputStreamReader:将输入的字节流转换为字符流输入形式。

代码实例

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.nio.charset.Charset;

public class ConvertStream {

	public static void main(String[] args) throws FileNotFoundException {
		InputStream in = new FileInputStream("F:/test.txt");
		read(in);

		OutputStream out = new FileOutputStream("F:/test.txt",true);
		write(out);
	}

	/**
	 * 向文件写数据
	 * @param out
	 */
	private static void write(OutputStream out) {
		// 将字节输出流转换为字符输出流
		Writer writer = new OutputStreamWriter(out, Charset.defaultCharset());
		try {
			writer.write(" really!");
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}// write

	/**
	 * 从文件读数据
	 * @param in
	 */
	private static void read(InputStream in) {

		// 将字节流输入流转换为字符输入流,并指定编码格式
		Reader reader = new InputStreamReader(in, Charset.defaultCharset());
		char[] flush = new char[1024];
		int len = -1;
		try {
			while ((len = reader.read(flush)) != -1) {
				System.out.println(new String(flush, 0, len));
			}
			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	} //read
}
posted on 2019-05-15 21:46  行之间  阅读(1272)  评论(0编辑  收藏  举报