我是一名初学者,对iostream有疑问。 最近,我学习了如何使用PrintWriter将字符串或变量写入文本文件。现在我正在创建一个小程序,但我需要输出多个变量。我是否需要为每个变量创建一个不同的文件,还是可以将所有变量输出到一个文本文件?如果是这样,我如何将它们读回到程序中。
//write
static File data = new File ("data.txt");
static PrintWriter outputStream = new PrintWriter(data);
outputStream .println("test");
outputStream .close();
//read
Scanner inputStream = new Scanner(data);
String test = input.nextLine();
答案 0 :(得分:0)
不是100%不确定在没有看到变量以及它们试图做什么的情况下到底要做什么。如果您只想在一个文件中写入和读取多个字符串,则可以通过手动将所有内容输出到一个文件中:
outputStream.println("test1");
outputStream.println("test2");
outputStream.println("test3");
outputStream.close();
要逐行阅读,只需执行
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
由于您提到将它们存储为变量,所以根据情况,您可以使用某些类型的Collections类,例如ArrayList或HashMap。
// add all strings from each new line to an ArrayList
while (scanner.hasNextLine()) {
varArray.add(scanner.nextLine());
}
// close your streams
scanner.close();
// iterate the ArrayList and print all values
for (String var : varArray) {
System.out.println(var);
}
// grab value by its index in the ArrayList
System.out.println("Get variable from index 2: " + varArray.get(2));
无论如何,除非您可以依赖于将字符串写入文件的顺序,否则您将需要具备一些条件才能返回想要的字符串。这样只会按照插入顺序将它们全部打印出来。