我需要生成表数据并将其写入文件。 输出文件应如下所示:
123|aaaa|bbba|
124|aaab|bbbb|
125|aaac|bbbc|
通过生成单行很容易,比如 123 | aaaa | bbba | \ n 并编写它,但我需要生成一个列< / strong>因为生成器有性能问题,请编写它,然后生成另一个。
在for循环中,我需要写入类似的文件:
123|
124|
125|
然后:
123|aaaa|
124|aaab|
125|aaac|
最后:
123|aaaa|bbba|
124|aaab|bbbb|
125|aaac|bbbc|
我目前的代码如下:
os = new BufferedOutputStream(new FileOutputStream(filename));
StringBuffer column = new StringBuffer();
for (int i = 0; i < numberofcolumns; i++) {
for (int j = 0; j < width; j++) {
column.append(columns[i].genValue());
column.append("|\n");
}
os.write(column.toString().getBytes(), 0, entry.length());
}
答案 0 :(得分:1)
为什么要立即将其写入文件并每次重新打开? 如何在内部保存并在生成所有数据后将其写入文件?
您可以声明一个三维数组并将数据写入其中。 完成此操作后,将数组写入文件。应该容易得多。
答案 1 :(得分:0)
这看起来确实不错,但可以通过paste
:
$ echo """a
> b
> c
> d""" > testFile
$ echo """1
> 2
> 3
> 4""" | paste -d"|" testFile - > modifiedFile
$ cat modifiedFile
a|1
b|2
c|3
d|4
为什么它看起来像个坏主意: