Java 为什么需要打印机?
我真的很困惑各种io类的用途,例如,如果我们有BufferedWriter,为什么我们需要PrintWriterJava 为什么需要打印机?,java,io,printwriter,Java,Io,Printwriter,我真的很困惑各种io类的用途,例如,如果我们有BufferedWriter,为什么我们需要PrintWriter BufferedReader reader = new BufferedReader(new FileReader(file)); String line = null; while(s=br.readline()!=null) { PrintWriter fs = new PrintWriter(new FileWriter(file)); fs
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = null;
while(s=br.readline()!=null) {
PrintWriter fs = new PrintWriter(new FileWriter(file));
fs.println(s);
}
如果BufferedWriter无法帮助?我只是不明白这些io类之间的区别,有人能给我解释一下吗?它们之间没有任何关系。事实上,我很少使用
PrintWriter
,只是暂时转换System.out
。但无论如何
BufferedWriter
,就像BufferedReader
/BufferedInputStream
/BufferedOutputStream
一样,只使用内存缓冲区(您可以指定大小)装饰封闭的Writer
,或者接受默认值。这在向网络或基于文件的慢速编写器写入时非常有用。(内容在内存中提交,仅偶尔提交到磁盘,例如)通过在内存中缓冲,速度大大提高-尝试编写只使用FileWriter
写入一个10 mb文件的代码,然后与围绕它的BufferedWriter
进行比较
这就是BufferedWriter。它引入了一些方便的方法,但大多数情况下它只提供了这个内存缓冲区
PrintWriter
主要是一个简单的修饰符,它为各种类型(如String
、float
)添加了一些特定的写入方法,因此您不必将所有内容都转换为原始字节
编辑:
已经出现了的
PrintWriter
基本上是一个方便的类。如果您想快速、轻松地将一行文本输出到日志文件中,PrintWriter会使其变得非常简单
三个特点:
和print
方法将采用任何数据类型并为您进行转换。不仅仅是println
字符串
- 相对较新的
方法是值得的。现在,用C样式的格式控制输出一行文本在Java中和在C中一样简单格式
- 这些方法从不抛出异常!一些程序员害怕永远不会听到事情出错的可能性。但是,如果它是一个一次性的程序或者做一些非常简单的事情,那么它的方便性是很好的。特别是当输出到
或System.out
时,它们很少出错System.err
BufferedWriter是写入文件(或任何其他文件)的有效方法,因为它会在写入文件之前缓冲Java内存中的字符。Nod,这些Java IO“流”类确实令人困惑。我可以很容易地找到InputStream、OutputStream(仅字节)和缓冲版本,但除此之外,它会令人困惑。缓冲能力2。新Java版本中的额外功能,尝试不混淆新的现有方法,而是通过引导开发人员检查“@since”JavaDoc元素来创建一个新类