我希望将姓名和日期和时间一起写入此i的文件中 使用arraylist.But当我把它写到文件上...一个单一的名字 日期出现两次;这与我的暗示有关 StandardOpenOption.Append因为当我不这样做时它会打印日期和值 曾经但是会覆盖我之前的价值观。] [1]
//created method to write date and name onto file
public void standardRoom()
{
try {
Path p=Paths.get("test/standardRoom.text");
if(Files.notExists(p))
{
Files.createFile(p);
}
System.out.println("Enter Name");
String name=sc.next();
List<String>stdrooms=new ArrayList<>();
date = d.toString();
stdrooms.add(date);
stdrooms.add(name);
System.out.println("Standard Room booked");
Iterator<String>bookings=stdrooms.iterator();
while(bookings.hasNext())
{
String s=bookings.next();
//Files.write(p, stdrooms);
Files.write(p, stdrooms,StandardOpenOption.APPEND);
}
} catch (IOException e) {
}
}
}
答案 0 :(得分:0)
将date
和name
添加到列表后,stdrooms
包含两个元素。
迭代器bookings
现在具有列表的大小。因此Files.write
执行两次:
Files.write(p, stdrooms,StandardOpenOption.APPEND);
打印包含stdrooms
和date
的{{1}}时,会使用默认的name
实现,然后打印整个列表。
一种解决方案可能是使用toString
进行打印而不是s
:
stdrooms