要获得给定字节流的缓冲char流,我应将字节流转换为第一个,缓冲流还是char流?
给出一个OutputStream
对象os
(例如FileOutputStream
对象或System.out
),似乎有两种方法可以获取
缓冲的字符流:
new BufferedWriter(new OutputStreamWriter(os));
new OutputStreamWriter(new BufferedOutputStream(os));
它们之间有什么区别?
给出一个InputStream
对象is
(例如FileInputStream
对象
或System.in
),似乎有两种获取缓冲字符的方法
流:
new BufferedReader(new InputStreamReader(is));
new InputStreamReader(new BufferedInputStream(is));
它们之间有什么区别?
答案 0 :(得分:0)
传递到write()方法的字符不被缓冲。
为获得最高效率,请考虑将OutputStreamWriter包装在BufferedWriter中,以避免频繁的转换器调用。例如:
Writer out = new BufferedWriter(new OutputStreamWriter(System.out));
由于转换后得到的字节累积在缓冲区中,因此不需要在OutputStreamWriter之后通过管道插入BufferedStream
因此,常规方法是使用:
new BufferedWriter(new OutputStreamWriter(os));
使用:
new BufferedReader(new InputStreamReader(is));