У меня проблема, когда я хочу найти строку строки в файле, это мой код
public static void main( String[] args ) throws SQLException
{
try{
//System.out.println( "Hello World!" );
RepositoryFactory.emf=Persistence.createEntityManagerFactory("onezero");
String Symbol = "EURUSD";
TradingHistory tradingHistorys = RepositoryFactory.getTradingHistoryRepo().findPriceEmpty(Symbol);
String symbols = tradingHistorys.getSymbol();
String created = tradingHistorys.getCreated_at();
String[] createds = created.split(" ");
String tanggal = createds[0];
String times = createds[1];
String timeSearch = tanggal.concat("T").concat(times);
String pathfile = "/home/ec2-user/saveFile/";
String filesearch = pathfile.concat(tanggal).concat("-").concat(symbols).concat(".txt");
SearchFile(timeSearch,filesearch);
System.out.print(symbols+"|"+created+"|"+filesearch+timeSearch);
}catch (Exception e){
System.out.print(e);
}
}
и здесь мой метод поиска строки в файле
private static void SearchFile(String timeSearch, String filesearch) {
String line = null;
ArrayList<String> fileContents = new ArrayList<String>();
try {
FileReader fReader = new FileReader(filesearch);
BufferedReader fileBuff = new BufferedReader(fReader);
while ((line = fileBuff.readLine()) != null) {
fileContents.add(line);
}
fileBuff.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
System.out.println(fileContents.contains(timeSearch));
}
и когда я использую
Scanner fileScanner = new Scanner(new File(filesearch));
int lineID = 0;
java.util.List lineNumbers = new ArrayList();
Pattern pattern = Pattern.compile(timeSearch);
Matcher matcher = null;
while(fileScanner.hasNextLine()){
String line = fileScanner.nextLine();
lineID++;
matcher = pattern.matcher(line);
if(matcher.find()){
lineNumbers.add(lineID);
}
}
System.out.println(lineNumbers);
}
я получил [183394, 183395, 183396, 183397, 183398, 183399, 183400, 183401, 183402, 183403, 183404, 183405, 183406]
при запуске кода i есть ошибка есть ложь. но когда я ищу руководство, там значение
имя файла: 2020-05-05-EURUSD.txt EUR / USD | 1.09031 | 2020-05-05T04: 30: 17.008 EUR / USD | 1.0903 | 2020 -05-05T04: 30: 17.046 EUR / USD | 1.09029 | 2020-05-05T04: 30: 17.211 EUR / USD | 1.0903 | 2020-05-05T04: 30: 17.340 EUR / USD | 1.09027 | 2020-05-05T04: 30: 17.348 EUR / USD | 1.0903 | 2020-05-05T04: 30: 17.509 EUR / USD | 1.09027 | 2020-05-05T04: 30: 17.518 EUR / USD | 1.0903 | 2020-05-05T04: 30: 17.547 EUR / USD | 1.09027 | 2020-05-05T04: 30: 17.558 EUR / USD | 1.0903 | 2020-05-05T04: 30: 17.712 EUR / USD | 1.09027 | 2020-05-05T04: 30: 17.718 EUR / USD | 1.0903 | 2020 -05-05T04: 30: 17.841 EUR / USD | 1.09027 | 2020-05-05T04: 30: 17.848
как исправить строку поиска в файле file.txt?
а это записать, что я получил
false
EURUSD|2020-05-05 04:30:17|2020-05-05 04:30:17/home/ec2-user/saveFile/2020-05-05-EURUSD.txt2020-05-05T04:30:17