While testing everything works but my Solution is wrong. This task requirements are not clear for me.
I am searching for first pattern and if program will find it, it is printed out and whole program is stopped
package pl.codegym.task.task18.task1822;
/*
Wyszukiwanie danych wewnątrz pliku
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String file1 = reader.readLine();
reader.close();
BufferedReader bufferedReader = new BufferedReader(new FileReader(file1));
String regex = "[0-9]{1,}[ ][a-zA-z| ]{1,}[ ]([0-9]+[/.][0-9]+)[ ][0-9]+";
while (bufferedReader.ready()) {
String data = bufferedReader.readLine();
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(data);
if (matcher.find()) {
System.out.print(matcher.group());
break;
}
}
bufferedReader.close();
}
}
/*Wczytaj nazwę pliku z konsoli.
Przeszukaj plik w poszukiwaniu informacji związanych z podanym id. Wyświetl je w formacie używanym w pliku.
Program jest uruchamiany z jednym argumentem: id (int).
Zamknij strumienie.
Dane w pliku są oddzielone spacjami i zapisane w następującej kolejności:
id productName price quantity
gdzie id to int
productName to String — może zawierać spacje
price to double
quantity to int
Informacje dotyczące każdego produktu są zapisane w osobnej linii.
Wymagania:
• Program powinien odczytywać nazwę pliku z konsoli.
• Utwórz strumień wejściowy dla tego pliku.
• Program powinien przeszukiwać plik i wyświetlać informacje związane z danym id przekazanym jako pierwszy argument.
• Strumień wykorzystywany do odczytu pliku musi zostać zamknięty.
*/