以表格格式将数据写入文本文件

Mok*_*oko 3 java file-io netbeans filewriter

到目前为止我有这个:

File dir = new File("C:\\Users\\User\\Desktop\\dir\\dir1\\dir2);
dir.mkdirs();
File file = new File(dir, "filename.txt");
FileWriter archivo = new FileWriter(file);
archivo.write(String.format("%20s %20s", "column 1", "column 2 \r\n"));
archivo.write(String.format("%20s %20s", "data 1", "data 2"));
archivo.flush();
archivo.close();
Run Code Online (Sandbox Code Playgroud)

然而.文件输出如下所示:

http://i.imgur.com/4gulhvY.png

我完全不喜欢.

如何为文本文件的输出创建更好的表格格式?

非常感谢任何帮助.

提前致谢!

编辑:修复!

而且,而不是看起来像

    column 1             column 2
      data 1               data 2
Run Code Online (Sandbox Code Playgroud)

我怎么能让它看起来像这样:

column 1             column 2
data 1               data 2
Run Code Online (Sandbox Code Playgroud)

会那样喜欢它.

Mad*_*mer 7

\r\n被被评为第二个参数的一部分,因此,它基本上计算所需的空间,就像这样...... 20 - "column 2".length() - " \r\n".length(),但由于第二行没有这一点,它需要较少的空间,并期待错位...

尝试添加\r\n作为基本格式的一部分,例如......

String.format("%20s %20s \r\n", "column 1", "column 2")
Run Code Online (Sandbox Code Playgroud)

这产生类似......

        column 1             column 2
          data 1               data 2
Run Code Online (Sandbox Code Playgroud)

在我的测试中......


CLO*_*UGH 6

我想你正试图以表格格式获取数据.我开发了一个Java库,可以构建更复杂的表,并提供更多自定义.您可以在此处获取源代码.以下是我的库可以创建的一些基本表视图.希望这很有用!

COLUMN WISE GRID(DEFAULT)

+--------------+--------------+--------------+--------------+-------------+
|NAME          |GENDER        |MARRIED       |           AGE|    SALARY($)|
+--------------+--------------+--------------+--------------+-------------+
|Eddy          |Male          |No            |            23|      1200.27|
|Libby         |Male          |No            |            17|       800.50|
|Rea           |Female        |No            |            30|     10000.00|
|Deandre       |Female        |No            |            19|     18000.50|
|Alice         |Male          |Yes           |            29|       580.40|
|Alyse         |Female        |No            |            26|      7000.89|
|Venessa       |Female        |No            |            22|    100700.50|
+--------------+--------------+--------------+--------------+-------------+
Run Code Online (Sandbox Code Playgroud)

全网格

+------------------------+-------------+------+-------------+-------------+
|NAME                    |GENDER       |MARRIE|          AGE|    SALARY($)|
+------------------------+-------------+------+-------------+-------------+
|Eddy                    |Male         |No    |           23|      1200.27|
+------------------------+-------------+------+-------------+-------------+
|Libby                   |Male         |No    |           17|       800.50|
+------------------------+-------------+------+-------------+-------------+
|Rea                     |Female       |No    |           30|     10000.00|
+------------------------+-------------+------+-------------+-------------+
|Deandre                 |Female       |No    |           19|     18000.50|
+------------------------+-------------+------+-------------+-------------+
|Alice                   |Male         |Yes   |           29|       580.40|
+------------------------+-------------+------+-------------+-------------+
|Alyse                   |Female       |No    |           26|      7000.89|
+------------------------+-------------+------+-------------+-------------+
|Venessa                 |Female       |No    |           22|    100700.50|
+------------------------+-------------+------+-------------+-------------+
Run Code Online (Sandbox Code Playgroud)

没有网格

NAME                    GENDER       MARRIE          AGE    SALARY($)      
Alice                   Male         Yes              29       580.40      
Alyse                   Female       No               26      7000.89      
Eddy                    Male         No               23      1200.27      
Rea                     Female       No               30     10000.00      
Deandre                 Female       No               19     18000.50      
Venessa                 Female       No               22    100700.50      
Libby                   Male         No               17       800.50      
Eddy                    Male         No               23      1200.27      
Libby                   Male         No               17       800.50      
Rea                     Female       No               30     10000.00      
Deandre                 Female       No               19     18000.50      
Alice                   Male         Yes              29       580.40      
Alyse                   Female       No               26      7000.89      
Venessa                 Female       No               22    100700.50      
Run Code Online (Sandbox Code Playgroud)