// читает исторические данные из всего файла и заполняет ими пустой candles private void readData() { bars = new ArrayList<>(); ConsoleHelper.getInstance().writeLog("HistoryStorage: try to read:" + dir + "\\" + importFile); try (Scanner scanner = new Scanner(new FileInputStream(dir + "\\" + importFile))) { while (scanner.hasNextLine()) { bars.add(new Bar(scanner.nextLine())); } } catch (FileNotFoundException e) { e.printStackTrace(); ConsoleHelper.getInstance().writeMessage("HistoryStorage:" + "ошибка при чтении файла:" + e); } ConsoleHelper.getInstance() .writeLog("HistoryStorage: finish of read:" + dir + "\\" + importFile); }
public boolean tryRefreshData() { // полностью прочитаем файл истории List<Bar> newBars = new ArrayList<>(); try (Scanner scanner = new Scanner(new FileInputStream(dir + "\\" + importFile))) { while (scanner.hasNextLine()) { newBars.add(new Bar(scanner.nextLine())); } } catch (FileNotFoundException e) { // e.printStackTrace(); ConsoleHelper.getInstance().writeMessage("HistoryStorage:" + "ошибка при чтении файла:" + e); return false; } // если разер новой истории больше старой - записывам новую историю вместо старой и возвращаем // true if (newBars.size() > bars.size()) { bars = newBars; return true; } // если время последних свечей равны но в остальное разное - записывам новую историю вместо // старой и возвращаем true if (newBars.get(newBars.size() - 1).equalsTime(bars.get(bars.size() - 1)) && !(newBars.get(newBars.size() - 1).equals(bars.get(bars.size() - 1)))) { bars = newBars; return true; } return false; }
public HistoryStorage(String nameContract, String idContract, String FILE_EXT, String timeframe) { String nameImportFile = nameContract + "-" + idContract + "-" + HistoryDownloader.getNumberOfTimeframe(timeframe) + FILE_EXT; ConsoleHelper.getInstance().writeLog("HistoryStorage создан " + nameImportFile); setImportFile(nameImportFile); }