我们正在使用opencsv
(http://opencsv.sourceforge.net/apidocs/au/au/com/com/bytecode/opencsv/csvwriter.html)
用XML内容的文件编写报告。
有两种方法可以解决 ->
i)使用fileOutputstream
写作FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osr= new OutputStreamWriter(fos);
writer = new CSVWriter(osr);
ii)使用BufferedWriter
写作BufferedWriter out = new BufferedWriter(new FileWriter(file));
writer = new CSVWriter(out);
有人知道该报告的撰写表现如何通过选择一个选项而不是另一种选择来影响吗?
对我的理解,只要它可以使用它可以使用的流。
delta (差异)将是从文件创建输出流之前的步骤。
使用 utputStreamWriter vors BufferedWriter 有什么性能影响?
使用Google Caliper运行一些基准后,看来BufferedWriter选项是最快的(但实际上没有太大的区别,所以我只使用您的选项舒适)。
如何解释结果:
-
FileOutputStreamWriter
方案与选项i
相对应 BufferedWriter
方案与选项II
相对应FileWriter
方案是我添加的,它只是使用普通的旧文件作者。
每个基准的运行3次:写1000、10,000和100,000行。
测试是在Linux Mint上进行的,i5-2500k(1.6GHz)CPU,8GB RAM,带有Oracle JDK7(写入SATA Green HDD)。结果会随着不同的设置而有所不同,但这应该适合比较目的。
rows benchmark ms linear runtime
1000 FileOutputStreamWriter 6.10 =
1000 BufferedWriter 5.89 =
1000 FileWriter 5.96 =
10000 FileOutputStreamWriter 50.55 ==
10000 BufferedWriter 50.71 ==
10000 FileWriter 51.64 ==
100000 FileOutputStreamWriter 525.13 =============================
100000 BufferedWriter 505.05 ============================
100000 FileWriter 535.20 ==============================
fyi opencsv包装Writer
您在PrintWriter
中给予它。