FileWrite BufferedWriter和PrintWriter结合
问题内容:
好的,所以我正在学习I /
O,并且在其中一张幻灯片中找到了以下代码。有人可以解释一下为什么需要FileWrite,BufferedWriter和PrintWriter吗?我知道BufferedWriter将缓冲输出并将其全部放入,但是为什么他们要使用FileWriter和PrintWriter?他们在错误处理等方面做得差不多吗?
而且为什么他们传递bw
到PrintWriter
?
FileWriter fw = new FileWriter (file);
BufferedWriter bw = new BufferedWriter (fw);
PrintWriter outFile = new PrintWriter (bw);
问题答案:
大概他们之所以使用a是FileWriter
因为他们想写入文件。双方BufferedWriter
并PrintWriter
必须得到另一位作家写-
你需要 一些 最终目的地。
(我个人不喜欢,FileWriter
因为它不允许您指定编码。我更喜欢使用FileOutputStream
包裹在中OutputStreamWriter
,但这是另一回事。)
BufferedWriter
如您所说,它用于缓冲-尽管它不缓冲 所有 输出,但只是固定数量的输出(缓冲的大小)。它会向底层作者创建“
chunkier”写入。
至于-
well的用法PrintWriter
,它公开了一些额外的方法,例如println
。我个人不喜欢它,因为它会吞下异常(您必须使用进行显式检查checkError
,但仍然无法提供详细信息,而且我认为我
从未 见过使用过它),但这又取决于您在做什么。该PrintWriter
传递的BufferedWriter
为 它的 目的地。
因此,您所显示的部分下面的代码可能PrintWriter
会写入,将写入BufferedWriter
,将(在其缓冲区已满,或者刷新或关闭时)写入FileWriter
,进而将字符数据转换为磁盘上的字节。