Java-逐行读取文件,直到文件结尾

时间:2018-09-07 09:40:41

标签: java file input graph format

我正在开发一个项目,该项目需要我用Java查找给定图的最小生成树。我是一个Java新手,因为我经常使用C ++。

我已经编写了算法,但是有一种独特的输入格式,就像这样:

0 1:33 2:0 3:12 4:29 5:32 6:22 7:13 8:45 9:21
1 0:6 2:18 3:2 4:26 5:41 6:8 7:47 8:13 9:19
2 0:22 1:28 3:49 4:47 5:5 6:16 7:32 8:5 9:34
3 0:21 1:24 2:2 4:29 5:20 6:39 7:17 8:21 9:3
4 0:27 1:20 2:38 3:4 5:14 6:25 7:0 8:24 9:11
5 0:20 1:7 2:29 3:15 4:3 6:19 7:11 8:19 9:41
6 0:14 1:36 2:6 3:45 4:18 5:33 7:43 8:22 9:36
7 0:25 1:12 2:15 3:45 4:18 5:43 6:41 8:37 9:26
8 0:29 1:44 2:23 3:15 4:34 5:45 6:27 7:29 9:4
9 0:18 1:41 2:20 3:25 4:18 5:10 6:10 7:49 8:42

或更明确地说:

[source-vertex] [destination-vertex]:[weight] [destination-vertex]:[weight] ...

我想知道如何读取这种输入格式?

我当时想读取每一行,直到文件结束,然后解析每一行中的数字。

2 个答案:

答案 0 :(得分:2)

所以您基本上有两个问题:

  • 如何逐行读取文件:有很多方法可以做到这一点(Java8 +中的一些便捷API),经典方法是获取Reader并从{ {1}},使用 try-with-resources 使用属性文本 encoding
  • 如何读取结构化数据:最简单的方法是使用正则表达式提取数据。

根据您的格式读取数据的代码:

InputStream

答案 1 :(得分:0)

我建议使用Steam API,并使用BuferedReader加载文件并使用lines()方法。这样就产生了一个Stream,您可以根据需要对其进行操作。