我有一个关于如何将文件输出存储到数组中的问题。在我的情况下,我试图将文件中的所有日期存储到数组中。对于我这样做的方式,编译器抱怨“不是声明”。我怎样才能解决这个问题?任何帮助将不胜感激。下面是我的代码(错误行前面有反斜杠):
double token[] = new double[9];
File filename = new File("/Users/timothylee/gravity1.txt");
Scanner inFile = new Scanner(filename);
while(inFile.hasNext()){
//////////////// token[] = inFile.nextDouble();
System.out.println(token);
}
inFile.close();
如果需要,请输入以下文件:
gravity1.txt:
3.70
8.87
9.79
3.70
24.78
10.44
8.86
11.13
0.61
答案 0 :(得分:1)
ArrayList<Double> token = new ArrayList<Double>();
File filename = new File("/Users/timothylee/gravity1.txt");
Scanner inFile = new Scanner(filename);
while(inFile.hasNext()){
token.add(inFile.nextDouble());
}
inFile.close();
System.out.println(Arrays.toString(token));
使用ArrayList,不要让你的生活更加艰难。 ;)这也使它更灵活,因为文件中有多少数据/行无关紧要。
答案 1 :(得分:0)
double token[] = new double[9];
int i = 0;
while(inFile.hasNext()){
token[i] = inFile.nextDouble();
System.out.println(token);
i++;
}
inFile.close();
这假设文件只有9行。
答案 2 :(得分:0)
您没有为令牌数组分配任何内容,这就是您收到“not a statement”错误的原因。您需要告诉Java where 将下一个双重放入:
double token[] = new double[9];
File filename = new File("/Users/timothylee/gravity1.txt");
Scanner inFile = new Scanner(filename);
int i = 0;
while(inFile.hasNext()){
token[i] = inFile.nextDouble();
System.out.println(token);
i++;
}
inFile.close();
答案 3 :(得分:-2)
这在使用map的Java 8中会更简单。这是Java 7版本:
File filename = new File("/Users/timothylee/gravity1.txt");
List<Double> doubleList = new ArrayList<Double>();
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
String line;
while ((line = reader.readLine()) != null) {
doubleList.add(Double.parseDouble(line))
}
}
double[] doubles = new double[doubleList.size()];
for (int i = 0; i < doubleList.size(); i++) {
doubles[i] = doubleList.get(i);
}