Java文本文件werid输出格式

Java文本文件werid输出格式,java,text-files,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].getNam

当我使用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++;
   }
for(int i=0;i


我做错了什么?

它看起来像是
getName()。getName()
getittle()
返回长度大于20的
字符串。超出指定宽度的字符不会被修剪。从:“宽度是写入输出的最小字符数。”

您可以使用String中的
trim()
方法删除空格。请尝试使用以下方法。我假设您的
getter返回字符串

 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() );