【发布时间】:2022-01-23 07:33:21
【问题描述】:
我有一个浮点数组,我在其中存储了一些来自用户输入的值。 我有 2 种方法,一种将存储在数组中的值保存到文本文件中,每个值在一行中,第二种方法再次重新读取值并将它们存储在数组中。例如,用户输入是 1,2,3,4 我将它们保存到一个文本文件然后我读取相同的 txt 文件现在我的数组应该显示 8 个元素 1,2,3,4,1,2,3, 4. 我遇到的问题是,当我将这些元素存储在 txt 文件中时,它会存储它们并在它们下面添加 100 个零,当我调用第二种方法从文件中重新读取这些元素时,它会读取零,所以当我'正在显示我的数组中的元素,当它应该显示 1,2,3,4,1,2,3,4 时它显示 0,0,0,0。 什么可能导致我出现这个问题?
public void saveValuesToFile(Scanner keyboard) {
try {
System.out.println("Enter name of file: ");
String fileName = keyboard.next();
File file = new File(fileName);
PrintWriter outputFile = new PrintWriter(file);
for(int i = 0; i < numbers.length; i++) {
outputFile.println(numbers[i]);
}
outputFile.close();
} catch (FileNotFoundException e) {
System.out.println("file dont exist");
e.printStackTrace();
}
}
public void readFromFile(Scanner keyboard) {
System.out.println("Enter file name");
String fileName = keyboard.next();
BufferedReader reader = null;
try {
reader = new BufferedReader (new FileReader(fileName));
String input = null;
while ((input = reader.readLine()) != null) {
for (int i = 0; i < numbers.length; i++) {
numbers[i] = Float.parseFloat(input);
}
}
}
catch (NumberFormatException | IOException e) {
e.printStackTrace();
}
}
【问题讨论】:
-
为什么不使用扫描仪来读取文件?
-
另外,请仔细查看循环的顺序
-
为什么要使用额外的循环来填充数组。因此,您从该行读取的每个数字都存储到数组的所有元素中。