Java文本文件werid输出格式

时间:2016-05-08 02:40:38

标签: java text-files

当我使用方法printf使用java将值写入文本文件时,我遇到了一个奇怪的问题,结果非常糟糕,我查阅了一些java文档,它建议我使用格式化

("%-20s %-20s %-20s %-20s  %-20s %-20s%n", 

结果真的不太好

  for (int i=0 ; i<array.length ; i++)
   {   
       texfile.printf("%-20s %-20s %-20s %-20s  %-20s %-20s%n", array[i].getName().getName(), array[i].getTittle() , array[i].getCodeISBN() , array[i].getDate() ,array[i].getPrice() , array[i].getNum() );
       book++;
   }

enter image description here

我做错了什么?

2 个答案:

答案 0 :(得分:2)

看起来getName().getName()getTittle()中的一个返回长度大于20的String。超出指定宽度的字符不会被java.io.PrintStream.printf()修剪。从java.util.Formatter Javadoc:“宽度是要写入输出的最小字符数。”

答案 1 :(得分:1)

您可以使用String中的trim()方法删除空格。尝试用下面的方法做。我假设你的getters return Strings

 texfile.printf("%-20s %-20s %-20s %-20s  %-20s %-20s%n", array[i].getName().getName().trim(), array[i].getTittle().trim() , array[i].getCodeISBN().trim() , array[i].getDate().trim() ,array[i].getPrice().trim() , array[i].getNum().trim() );