我的程序是关于联系人的。 例如,当医生插入姓名,姓氏,电话时,每次他要将数据保存到txt文件中时,输出将是:
somename
somesurname
sometelephone
somename
somesurname
sometelephone
...
现在我所做的输出将仅在一行中:
您可以在代码中看到somename somesurname sometelephone
:
if(text.equals("Save")) {
try {
ArrayList<String> contactsinformations=new ArrayList<>();
String name=tname.getText();
String surname=tsurname.getText();
String telephone=ttelephone.getText();
contactsinformations.add(0,name+" ");
contactsinformations.add(1,surname+" ");
contactsinformations.add(2,telephone+" ");
FileWriter outFile = new FileWriter("Contacts.txt");
BufferedWriter outStream = new BufferedWriter(outFile);
for(int i=0; i<contactsinformations.size(); i++)
outStream.write(String.valueOf(contactsinformations.get(i)));
outStream.close();
JOptionPane.showMessageDialog(this,"Data saved.");
} catch(IOException e) {
System.out.println("ERROR IN FILE");
}
}
我使用for循环来获取ArrayList的大小,但试图弄清楚如何在不同的行中插入信息。
警告:更新的问题! 问题真的得到了解决!
if(text.equals("Save")) {
try
{
ArrayList<String> contactsinformations=new ArrayList<>();
contactsinformations.add(tname.getText());
contactsinformations.add(tsurname.getText());
contactsinformations.add(ttelephone.getText());
FileWriter outFile = new FileWriter("Contacts.txt",true);
BufferedWriter outStream = new BufferedWriter(outFile);
for (int i = 0; i < contactsinformations.size(); i++) {
outStream.write(contactsinformations.get(i));
outStream.newLine();
}
JOptionPane.showMessageDialog(this,"Data saved.");
outStream.close();
}
答案 0 :(得分:0)
使用:
outStream.write(contactsinformations.get(i) + "\n");
此处\n
表示新行。
答案 1 :(得分:0)
由于ArrayList
保留插入顺序,因此您无需精确调整index
,并且可以省略无用变量name, surname, telephone
:
contactsinformations.add(tname.getText());
contactsinformations.add(tsurname.getText());
contactsinformations.add(ttelephone.getText());
由于ArrayList
的类型为String
,因此不需要valueOf
方法:
for (int i = 0; i < contactsinformations.size(); i++) {
outStream.write(contactsinformations.get(i));
outStream.newLine();
}
PrintWriter
类具有一种可以在一次调用中完成全部操作的方法(在此处与for-each循环结合):
PrintWriter pw = new PrintWriter(outFile);
for (String contactsinformation : contactsinformations) {
pw.println(contactsinformation);
}
答案 2 :(得分:0)
john.tipcalculation()
答案 3 :(得分:0)
转换为CharArray
并写入BufferedWriter
:
for(int i=0; i< contactsinformations.size(); i++) {
String str = contactsinformations.get(i) + "\n";
outStream.write(str.toCharArray(), 0, str.length());
}
或使用与上述相同的方式通过使用offset和length来编写String:
for(int i=0; i< contactsinformations.size(); i++) {
String str = contactsinformations.get(i) + "\n";
outStream.write(str, 0, str.length());
}