Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

So far I have this:

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 
"));
archivo.write(String.format("%20s %20s", "data 1", "data 2"));
archivo.flush();
archivo.close();

However. the file output looks like this:

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

Which I do not like at all.

How can I make a better table format for the output of a text file?

Would appreciate any assistance.

Thanks in advance!

EDIT: Fixed!

Also, instead of looking like

    column 1             column 2
      data 1               data 2

How can I make it to look like this:

column 1             column 2
data 1               data 2

Would prefer it that way.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
134 views
Welcome To Ask or Share your Answers For Others

1 Answer

The is been evaluated as part of the second parameter, so it basically calculating the required space as something like... 20 - "column 2".length() - " ".length(), but since the second line doesn't have this, it takes less space and looks misaligned...

Try adding the as part of the base format instead, for example...

String.format("%20s %20s 
", "column 1", "column 2")

This generates something like...

        column 1             column 2
          data 1               data 2

In my tests...


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...