2017-02-15 36 views
-1

У меня есть данные в моем текстовом файле в следующем форматеАнализировать и считывать данные из текстового файла

apple fruit 
carrot vegetable 
potato vegetable 

Я хочу прочитать эту строку за строкой и раскол в первом пространстве и хранить ее в наборе или карту или любые аналогичные коллекции java. (ключ и значение пары)

Пример: -
"apple fruit" следует хранить в карте, где key = apple и value = fruit.

+0

Здравствуйте и добро пожаловать в SO. Похоже, вы не потратили много времени на исследования по этой теме, иначе вы бы нашли множество примеров. Если вы по-прежнему считаете, что вам нужна помощь сообщества, представьте код своего решения, на котором мы можем обсудить и предложить улучшения. Маловероятно, чтобы кто-то был бы счастлив выполнить всю задачу для вас. –

ответ

1

Класс Scanner - это, вероятно, то, что вам нужно.

В качестве примера:

Scanner sc = new Scanner(new File("your_input.txt")); 
while (sc.hasNextLine()) { 
    String line = sc.nextLine(); 
    // do whatever you need with current line 
} 
sc.close(); 
0

Вы можете сделать что-то вроде этого:

BufferedReader br = new BufferedReader(new FileReader("file.txt")); 
String currentLine; 
while ((currentLine = br.readLine()) != null) { 
    String[] strArgs = currentLine.split(" "); 
    //Use HashMap to enter key Value pair. 
    //You may to use fruit vegetable as key rather than other way around 
} 
0

Поскольку Java 8 вы можете просто сделать

Set<String[]> collect = Files.lines(Paths.get("/Users/me/file.txt")) 
      .map(line -> line.split(" ", 2)) 
      .collect(Collectors.toSet()); 

если вы хотите карту, вы может просто заменить Collectors.toSet на Collectors.toMap()

Map<String, String> result = Files.lines(Paths.get("/Users/me/file.txt")) 
      .map(line -> line.split(" ", 2)) 
      .map(Arrays::asList) 
      .collect(Collectors.toMap(list -> list.get(0), list -> list.get(1))); 

 Смежные вопросы

  • Нет связанных вопросов^_^