我想在.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();
答案 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();
当然包含必要的异常处理。