将字符写入表格

时间:2015-11-08 03:11:55

标签: java file byte

我知道如何使用FileOutputStream将字节流写入txt文件,我也知道如何将它们写入单独的行(这里我想称这些行为)。

我想知道如何将字符写入不同的列?假设有一个循环,我们想在每一行的列中写一个数字。每列表示内循环的迭代。输出应如下所示:

1 3   4
2   3 5
1 2 3 5
2 5
1 2 3 5

我该怎么做?

1 个答案:

答案 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());       
       }
   }
}

然后使用宽度再次迭代以填充字符串。

See