字节字符转换流学习
字节字符转换流
转换流,可以将一个字节流转换为字符流,也可以将一个字符流转换为字节流。
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
}