我正在尝试优化基于Web的应用程序,该应用程序对流进行了大量编写。
代码是这样的-
StringWriter stringWriter = new StringWriter(1024);
PrintWriter printWriter = new PrintWriter(stringWriter);
然后,该打印机将用于在多个位置执行许多写操作,例如-
printWriter.write("set interface ethernet0 zone Trust");
我想通过将printwriter包裹在bufferedwriter周围来优化几个写操作。所以我打算如下更改line1和line2。请让我知道下面的方法是否正确-
StringWriter stringWriter = new StringWriter(1024);
// go for bufferedwriter instead of printwriter.
BufferedWriter bufWriter = new BufferedWriter(stringWriter, 8*1024);
另外,我认为现在我可以像在-中那样直接替换write方法了。
printWriter.write("set interface ethernet0 zone Trust");
替换为
bufWriter.write("set interface ethernet0 zone Trust");
请让我知道这是否正确,还是我需要使用BufferedWriter的任何重载方法来充分利用BufferedWriter。
谢谢,
开发人员
最佳答案
添加BufferedWriter只会为每个写入的字符添加一个附加的复制操作。您应该改为更改StringWriter的初始大小,初始大小较大意味着增长较少,以后也不会复制。
StringWriter本身包含一个用于字符数据的不断增长的Buffer,使用BufferedWriter在其顶部添加一个额外的缓冲区不会导致速度提高。从给定的代码开始,StringWriter对象本身的较大初始大小可能会有所帮助。