如何在.text文件(java)的第二行写

时间:2014-05-15 15:50:53

标签: java file formatting filewriter

我想在.txt文件中写一些参数,我想对它们进行排序。要做到这一点,我想进入下一行的每一个论点但我不知道该怎么做。我试过:     x.nextLine(); 声明,但这只是扫描而不是格式化。

如何在格式化时转到文件的下一行?还有其他声明吗?

这是我创建的代码:

try{
    w = new Formatter("data.txt");
}
catch(Exception e){
        JOptionPane.showMessageDialog(null, "Fatal Error, please Reboot or reinstal program", "Error", JOptionPane.PLAIN_MESSAGE);
}

w.format("%s,%s,%s,%s%n", book,code,author,editor);
w.close();

1 个答案:

答案 0 :(得分:0)

你写

w.format("%s,%s,%s,%s%n", book,code,author,editor);

我假设你想要一个你写%n的换行符。但换行是\ n,所以将代码更改为

w.format("%s,%s,%s,%s\n", book,code,author,editor);

此外,您可能想要修改程序中的错误捕获逻辑:现在,如果打开文件失败,您会显示错误消息,这很好,但之后您的程序继续执行并将崩溃并烧毁第一次写操作......

编辑:每次执行行w.format("%s,%s,%s,%s\n", book,code,author,editor);时,只要您不关闭文件或重新启动程序,就会将新行终止的行添加到文件中,因为{ {3}}:

  

fileName - 要用作此格式化程序的目标的文件的名称。如果该文件存在,则 将被截断为零大小 ;否则,将创建一个新文件。输出将写入文件并进行缓冲。

因此,如果您需要一个增长而不是被覆盖的文件,您应该使用其他可用构造函数之一,例如一个Javadoc for the constructor you use says。这将导致以下代码:

FileWriter fstream = new FileWriter("data.txt",true);
Formatter w = new Formatter(fstream);

// do whatever your program needs to do

w.close();

当然包含必要的异常处理。