当我使用方法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++;
}
我做错了什么?
最佳答案
看起来getName().getName()
或getTittle()
之一正在返回长度大于20的String
。超出指定宽度的字符不会被java.io.PrintStream.printf()
修剪。在java.util.Formatter
Javadoc中:“宽度是要写入输出的最小字符数。”