public static void writer(ArrayList<String> a)
{
FileWriter file = new FileWriter("text1.txt");
for(int i=0; i<a.size(); i++)
{
if(i%2==0)
{
file.write(a, i+2, 300);
}
else
{
System.out.printf("a.get(i, i+1,300));
System.out.println();
}
}
}
我正在尝试使用file.write方法将格式化文本写入.txt文件。我想使用类似于“System.out.printf”命令的格式化技术。我希望上面的程序与下面的程序做同样的事情,除了写入文本文件而不是控制台。有什么建议?文本(不同长度)必须在两个整齐的列中排列,每个列从同一点开始。我无法从String对象列表中更改输入的形式。我不熟悉BufferedOutputStream和几乎任何其他“写入文本文件”类,所以如果您的解决方案涉及到这一点,请比正常情况更彻底地解释一下。谢谢!
public static void formatter(ArrayList<String> a)
{
System.out.printf("%-15s", "Item:");
System.out.printf("%1s", "Price:");
System.out.println();
for(int i=0; i<a.size(); i++)
{
if(i%2==0)
{
System.out.printf("%-15s",a.get(i));
}
else
{
System.out.printf("$%1s",a.get(i));
System.out.println();
}
}
答案 0 :(得分:1)
printf方法在PrintStream类上,因此不使用新的FileWriter(&#34; test1.txt&#34;)尝试新的PrintStream(&#34; test1.txt&#34;),file.printf应该工作
发现自己的一种方法是查看你想要做的事情,比如System.out。您将发现它是一个PrintStream,因此请查看PrintStream javadocs以了解如何打开文件并返回PrintStream,PrintStream本身可以方便地为其提供构造函数。