使用java逐行解析文本文件的内容

时间:2014-04-17 08:30:00

标签: java string parsing field line

3375577.3   131  STSTWMS
3375577.4   131  STSTWMS
3407108     131  STSTWMS
3407231     131  STSTWMS
3407280.1   131  STSTWMS
3407581     131  STSTWMS
3408483     131  STSTWMS
3409015     131  STSTWMS
3409015.1   131  STSTWMS
3409085.1   131  STSTWMS
3409364     131  STSTWMS
3409364.1   131  STSTWMS

我的文本文件具有以上格式。

每行代表与补丁相关的信息 第一列是补丁ID,第二列是发布,第三列是客户端。 我如何逐行读取文件将补丁存储到数组列表中并将字段解析为列

4 个答案:

答案 0 :(得分:0)

只需查看:FileReader中的BufferedReader - >的readLine()

用String.split将它们拆分

使用add()

添加到ArrayList

...有时候Java就像用简单的英语写下你想做的事情

答案 1 :(得分:0)

使用java BufferedReader中的readLine()方法可以实现您的要求。 Eash行可以存储在ArrayList中,然后可以拆分每个String以获取单个单词。

要分割字符串,您可以尝试使用 StringTokenizer 类。示例用法如下:

StringTokenizer st = new StringTokenizer(str);
while (st.hasMoreElements()) {
    System.out.println(st.nextElement());
}

此代码将删除字符串中的所有空格。

答案 2 :(得分:0)

您可以使用Scanner类'nextLine()方法逐行阅读文本。至于如何将其存储为列,在每一行中,找到每个列被拆分的字符,例如:空格' '或任何其他字符,并在String中使用它class'split()方法。

尝试这样的事情:

File file = new File("input.txt");
Scanner s = new Scanner(file);
while (s.hasNextLine()){
String string = s.nextLine();
List<String> columns = Arrays.asList(string.split(" "));
}

答案 3 :(得分:0)

带有BufferedReader的

版本如上所述

String line="";

 BufferedReader r = new BufferedReader(new FileReader(file));

while((line = r.readline) != null){

  List<String> columns = Arrays.asList(line.split(" "));

}