我一直试图修改我的声明一段时间了,现在我要打扰你了!
我正在读取.txt文件,将其数据存储到名为temp
的数组中。我正在向此数组添加一个新字符串,然后将其保存回.txt文件。简单......我知道!
我的代码如下:
public static void main(String[] args) throws IOException {
// Defining
String token = "";
// Tokensize user input.
Scanner action = new Scanner(System.in);
String tokenized = action.nextLine();
String[] tokenizes = tokenized.split("\\s");
// Read the 'greetings' part of the first sentence.
// Open 'greetings.txt' and save data to an array.
Scanner file1 = new Scanner(new File("greetings.txt"));
List<String> temp = new ArrayList<String>();
while (file1.hasNext()) {
token = file1.next();
temp.add(token);
}
temp.add(tokenized);
file1.close();
System.out.println(temp);
System.out.println(temp.get(1));
System.out.println(temp.get(2));
int arraylength = temp.size();
System.out.println(arraylength);
// Write the users greetings into the .txt.
// Overwrite old greetings array data.
PrintWriter writing = new PrintWriter("greetings.txt");
for (int i = 0; i < arraylength; i++) {
writing.println(temp.get(i));
writing.write("\n");
writing.close();
}
}
}
问题是,for循环只将temp(0)
保存到greetings.txt
文件中。它没有在i
到arraylength
之间骑行。
答案 0 :(得分:2)
将writing.close();
移出for循环。在您提供的代码中,您在第一次迭代中关闭了打印编写器(事实上,您在每次迭代中调用writer.close()
)。也就是说,改变
for (int i = 0; i < arraylength; i++) {
writing.println(temp.get(i));
writing.write("\n");
writing.close();
}
到
for (int i = 0; i < arraylength; i++) {
writing.println(temp.get(i));
writing.write("\n");
}
writing.close();
答案 1 :(得分:0)
你在for循环中的结束写作。在for循环之后移动writing.close()应该可以解决问题。