在文件中搜索,然后将结果放在一个列表中

时间:2014-01-23 12:58:27

标签: java csv

我有一个包含如下值的文本文件:

name1, value1, number 1,
name2, value2, number 2,

我在这个文件中搜索第一个值(比如说name2),我想在列表中放入value2和number2。我怎样才能做到这一点?对于第一个值我做了但我不知道如何存储该行的所有日期..

  public static List<String> findLocalityValues(String path, String word) throws FileNotFoundException {
    Scanner scanner = new Scanner(new File(path)).useDelimiter(word + ",");

    List<String> list = new ArrayList<String>();
    while (scanner.hasNext()) {
      String found = scanner.next();
      list.add(found.substring(0, found.indexOf(',')));

    }
    return list;
  }

1 个答案:

答案 0 :(得分:0)

你使它变得比它需要的更复杂。您应该使用内置的java实用程序。尝试这样的事情:

import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;

byte[] contentbytes = Files.readAllBytes(Paths.get("path"));
String filecontents = StandardCharsets.UTF_8.decode(ByteBuffer.wrap(contentbytes)).toString();
filecontents = filecontents.substring(filecontents.indexOf("name"));
filecontents = filecontents.substring(0,StringUtils.ordinalIndexOf(filecontents,",", 3));
List<String> myList = Arrays.asList(filecontents.split("\\s*,\\s*"));