高级流
字符流
- java将流按照读写单位划分为字节流与字符流。
java.io.InputStream
和OutputStream
是所有字节流的超类。- 而
java.io.Reader
和Writer
则是所有字符流的超类,它们和字节流的超类是平级关系。 Reader
和Writer
是两个抽象类,里面规定了所有字符流都必须具备的读写字符的相关方法。- 字符流最小读写单位为字符(char),但是底层实际还是读写字节,只是字符与字节的转换工作由字符流完成。
转换流
java.io.InputStreamReader
和OutputStreamWriter
它们是字符流非常常用的一对实现类同时也是一对高级流,实际开发中我们不直接操作它们,但是它们在流连接中是非常重要的一环。
使用转换输出流向文件中写入文本数据
/**
* 字符流
* java将流按照读写单位划分为字节流与字符流.
* java.io.InputStream和OutputStream是所有字节流的超类
* 而java.io.Reader和Writer则是所有字符流的超类,它们是平级关系.
*
* Reader和Writer是两个抽象类,里面规定了所有字符流都必须具备的读写字符的相关方法.
* 字符流最小读写单位为字符(char),但是底层实际还是读写字节,只是字符与字节的转换工作由
* 字符流完成.
*
* 转换流
* java.io.InputStreamReader和OutputStreamWriter
* 它们是字符流非常常用的一对实现类同时也是一对高级流,实际开发中我们不直接操作它们,但是
* 它们在流连接中是非常重要的一环.
*/
public class OSWDemo {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("demo.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8);
osw.write("你好");
osw.write("HIEU");
System.out.println("写出完毕");
osw.close();
}
}
使用转换输入流读取文本文件
/**
* 转换字符输入流
* 可以将读取的字节按照指定的字符集转换为字符
*/
public class ISRDemo {
public static void main(String