Разбор и чтение данных из текстового файла

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

apple fruit
carrot vegetable
potato vegetable 

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

пример:-
"apple fruit" должны храниться на карте, где key = apple а такжеvalue = fruit,

3 ответа

Вероятно, вам нужен класс 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(); 

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

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
}

С 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)));
Другие вопросы по тегам