我有这种格式的文件:
0 2 4
3 2 4
3 5 2
1 8 2
我的目标是读取每个文件的第一行并将其存储在一个数组中。所以最后我应该0,3,3,1
我认为有一种方法,读取行直到我们遇到一个空格并将其保存在数组中......但是它会继续读取2和4之后
有没有一种有效的方法,我的鳕鱼如下所示:
openandprint()
{
int i = 0;
try (BufferedReader br = new BufferedReader(new FileReader("final.txt")))
{
String line;
while ((line = br.readLine()) != null) {
int change2Int=Integer.parseInt(line.trim());
figures [i] = change2Int;
i++;
}
}
catch (Exception expe)
{
expe.printStackTrace();
}
}
答案 0 :(得分:2)
使用Scanner
会使代码更加清晰:
private static openandprint() throws IOException {
int i = 0;
try (Scanner s = new Scanner("final.txt"))) {
String line;
while (s.hasNextLine()) {
int change2Int = s.nextInt();
s.nextLine(); // ignore the rest of the line
figures [i] = change2Int;
i++;
}
}
}
答案 1 :(得分:1)
尝试
int change2Int=Integer.parseInt((line.trim()).charAt(0)-'0');
或
int change2Int=Character.getNumericValue(line.charAt(0));
使用你的approch,你正在阅读整行并将其解析为int,因为数字之间的空格,这将给你NumberFormatException
。
答案 2 :(得分:0)
BufferedReader br = ...;
String line = null;
while ((line = br.readLine()) != null) {
String[] parts = line.split(" ");
int next = Integer.parseInt(parts[0]);
System.out.println("next: " + next);
}