我知道如何使用FileOutputStream
将字节流写入txt
文件,我也知道如何将它们写入单独的行(这里我想称这些行为行)。
我想知道如何将字符写入不同的列?假设有一个循环,我们想在每一行的列中写一个数字。每列表示内循环的迭代。输出应如下所示:
1 3 4
2 3 5
1 2 3 5
2 5
1 2 3 5
我该怎么做?
答案 0 :(得分:1)
文本文件没有列,它们只是一个字符串("一个字母数组")字符(实际上是字节);它是用户界面,它显示它就像有线条或"表格"。
如果要导出到Excel,Google" CSV" (昏迷分离值)。
如果您想要打印到stdout
,您可能需要Google"漂亮的打印ASCII表"。
如果您想手动完成,我建议您迭代数据以首先计算每列的宽度。然后再次迭代并使用您先前计算的宽度打印每列。
List < List <String> > rows;
List < Integer > widths = new ArrayList<>();
for(int i = 0; i < rows.size(); ++i) {
List <Integer> row = rows.get(i);
for (int j = 0; j < row.size(); ++j) {
widths.ensureCapasity(j + 1);
Integer max = widths.get(j);
if( max == null || max < row.get(j).length()) {
widths.set(j, row.get(j).length());
}
}
}
然后使用宽度再次迭代以填充字符串。