繁体   English   中英

写入文本文件时格式化数据(Java)

[英]Formatting Data When Writing to Text File (Java)

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”命令的格式化技术。 我希望上面的程序与下面的程序做相同的事情,除了写入文本文件而不是控制台。 有什么建议么? 文本(不同长度)必须在两行整齐的列中排成一行,每列从同一点开始。 我无法从“字符串对象”列表更改输入形式。 我不熟悉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();
        }
    }

printf方法位于PrintStream类上,因此请尝试使用new PrintStream(“ test1.txt”)代替new FileWriter(“ test1.txt”),file.printf应该可以正常工作。

一种发现自己的方法是查看要执行的操作,例如System.out。 您会发现这是一个PrintStream,因此请查看PrintStream javadocs,以发现如何打开文件并返回PrintStream,PrintStream本身就方便地为其提供了构造函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM