【发布时间】:2017-11-08 15:56:05
【问题描述】:
我在尝试从文件中读取并将其添加到数组时完全被难住了。所以我尝试实现的是将该行读入一个临时字符串数组,然后将临时值添加到主数组中,
这是我要逐行拆分为数组的文本文件的内容。这样我就可以取每一行,用数字进行计算并格式化输出。
Mildred Bush 45 65 45 67 65 into [[Mildred Bush],[45],[65],[67],[65]]
Fred Snooks 23 43 54 23 76 etc.
Morvern Callar 65 45 34 87 76 etc.
Colin Powell 34 54 99 67 87
Tony Blair 67 76 54 22 12
Peter Gregor 99 99 99 99 99
但是,当运行时,主数组中的内容是 [Mildred, Fred, Morvern, Colin, Tony, Peter]。所以这意味着只有第一个值被附加到主数组中,我不确定如何在我的代码中将其修复为我需要的。
//要打开的文件名。
String fileName = "Details.txt";
String wfilename = "output.txt";
// This will reference one line at a time
String line = null;
String temp;
try {
// FileReader reads text files in the default encoding.
FileReader fileReader = new FileReader(fileName);
FileWriter fileWriter = new FileWriter(wfilename);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
// Always wrap FileReader in BufferedReader.
BufferedReader bufferedReader = new BufferedReader(fileReader);
List<String> parts = new ArrayList<>();
String [] temp2;
while((line = bufferedReader.readLine()) != null) {
//System.out.println(line);
temp = line;
temp2 = line.split(" ");
parts.add(temp2[0]);
//System.out.println(line);
bufferedWriter.write(line + "\n");
}
System.out.print(parts);
// Always close files.
bufferedReader.close();
bufferedWriter.close();
}
catch(FileNotFoundException ex) {
System.out.println("Unable to open file '" + fileName + "'");
}
catch(IOException ex) {
System.out.println("Error reading file '" + fileName + "'");
}
更新尝试:
我发现原因是
parts.add(temp2[0]);
当我尝试时
parts.add(temp2)
我遇到了一个错误
The method add(String) in the type List<String> is not applicable for the arguments (String[])
所以基本上我正在努力的是将一个数组添加到一个数组中。
编辑2:
我试过了
for(int i=0; i<7; i++){
parts.add(temp2[i]);
}
它的工作原理是将文件中的所有项目添加到一个数组中。我想知道是否有任何方法可以每 7 个术语拆分列表以使其成为二维数组?
这不是必需的,但我觉得对于计算,使用 for 循环并在对每一行进行计算时执行 [i+7] 是不好的做法。
【问题讨论】: