问题描述
在JDK中,OutputStreamWriter类是字符流通向字节流的桥梁:可使用指定的charset将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。为了获得最高效率,可考虑将OutputStreamWriter包装到BufferedWriter中,以避免频繁调用转换器。例如:Writerout=newBufferedWriter(newOutputStreamWriter(System.out));我的理解是:System.out是字节流,OutputStreamWriter(System.out)就已经把System.out字节流转换成字符流了,那么为什么还说是字符流通向字节流的桥梁,不应该是字节流通向字符流的桥梁吗?
解决方案
解决方案二:
你想要实现什么呢?
解决方案三:
字符输出流的原理和字符输入流的原理一样,也可以看做是包装流,其底层还是采用字节输出流来写文件。只是字符输出流根据指定的编码将字符转换为字节的。所以在JDK中,OutputStreamWriter类是字符流通向字节流的桥梁:可使用指定的charset将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。
解决方案四:
在InputStreamReader和outPutStreamWriter中,他们的构造函数中传入的都是字节流,所以在read的时候,是将字节流转换为字符流,写的时候,已知的是传入的字节流,所以自然而然转换为字符流。我认为他那两种说法只是想表明这两种流可以转换,无所谓谁通向谁
时间: 2024-10-28 23:03:03