转换流----OutputStreamWriter、InputStreamReader
文章目录
转换流----OutputStreamWriter、InputStreamReader前言图解案例演示将字节输出流变为字符输出流对象运行结果将字节输入流变为字符输入流运行结果
总结
前言
在Java的IO中,实际上分为两大类为字节流和字符流,但是除了这两大类之外,还存在一组字节字符流的转换类。
OutputStreamWriter: 是Writer类的子类,FileWriter继承于此类,将输出的字符流变为字节流输出到文件,即将一个字符流的输出对象变为字节流输出对象,构造方法需传递OutputStream字节输出流实例化对象。
InputStreamReader: 是Reader类的子类,FileReader继承于此类,将输入的字节流变为字符流输入到程序,即将一个字节流的输入对象变为字符流输入对象,构造方法需传递InputStream字节输入流实例化对象。
图解
案例演示
将字节输出流变为字符输出流对象
package chapter_twelve
;
import java
.io
.File
;
import java
.io
.FileOutputStream
;
import java
.io
.OutputStreamWriter
;
import java
.io
.Writer
;
public class OutputStreamWriterDemo01 {
public static void main(String
[] args
) throws Exception
{
File file
= new File("D:" + File
.separator
+ "test.txt");
Writer writer
=
new OutputStreamWriter(new FileOutputStream(file
));
String string
= "Hello World!!!\r\nGao Li Wei!!!";
writer
.write(string
);
writer
.close();
}
}
运行结果
将字节输入流变为字符输入流
package chapter_twelve
;
import java
.io
.File
;
import java
.io
.FileInputStream
;
import java
.io
.InputStreamReader
;
import java
.io
.Reader
;
public class InputStreamReaderDemo01 {
public static void main(String
[] args
) throws Exception
{
File file
= new File("D:" + File
.separator
+ "test.txt");
Reader reader
=
new InputStreamReader(new FileInputStream(file
));
char[] chars
= new char[1024];
int len
= reader
.read(chars
);
System
.out
.println(new String(chars
,0,len
));
reader
.close();
}
}
运行结果
Hello World
!!!
Gao Li Wei
!!!
总结
实际上不管在程序中如何操作,在文件的读写时最终都是以字节的方式进行操作的,字符流只是辅助开发人员进行更方便开发的一种方式,小伙伴们可以根据具体需求使用哦!