读取文件中每行的第一个字符

时间:2015-04-23 16:46:26

标签: java file

我有这种格式的文件:

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();
    }

}

3 个答案:

答案 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);
}