Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
12 / 8 / 6
Регистрация: 10.07.2011
Сообщений: 374
Записей в блоге: 1

BufferedReader. Проблема чтения логов

07.08.2019, 02:03. Показов 1448. Ответов 1

Студворк — интернет-сервис помощи студентам
Использую следующий код, чтобы читать строки из файла с логами и посылать их на обработку (выводить в консоль).
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Observable;
 
class ReaderTd extends Observable implements Runnable {
 
    private BufferedReader inputLog;
    private String FilePath;
 
    public ReaderTd(){
        setFilePath("test.txt");
    }
 
    private void run(String path, boolean firstRun) {
        boolean sendResultsOfFirstRun = firstRun;
        try {
            int timeInterval = 2000;
            inputLog = new BufferedReader(new InputStreamReader(new FileInputStream(path), StandardCharsets.UTF_8));
            StringBuilder LinesToSend = new StringBuilder();
            String currentLine;
            do {
                if (!Thread.interrupted()) {
                    try {
                        currentLine = inputLog.readLine();
                        if ((currentLine != null)) {
                            System.out.println(currentLine);
                            continue;
                        } else {
                            
                        }
 
 
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
 
                } else
                    return;
                try {
                    Thread.sleep(timeInterval);
                } catch (InterruptedException e) {
                    return;
                }
            }
            while (true);
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        } finally {
            try {
                inputLog.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
 
 
    @Override
    public void run() {
        run(getFilePath(), true);
    }
 
 
    private String getFilePath() {
        return FilePath;
    }
 
    public void setFilePath(String filePath) {
        FilePath = filePath;
    }
}
Код исправно это делает за исключением одного случая.
Если программа, пишущая логи, перезаписывает файл с нуля, то данный код перестает читать новые строки (currentLine всегда равна null). Можно ли как-то решить эту проблему?
Это можно как-то исправить?

Добавлено через 56 минут
Цитата Сообщение от Bohes Посмотреть сообщение
перезаписывает файл с нуля
UPD. Файл не пересоздается, лишь стираются все строки в нем и пишутся новые.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.08.2019, 02:03
Ответы с готовыми решениями:

BufferedReader in = new BufferedReader(new InputStreamReader(My_Connection.getInputStream())) ; не работает код..
Есть такой код. // ... BufferedReader in = new BufferedReader(new InputStreamReader(My_Connection.getInputStream())); String...

Требует права администратора для чтения/записи логов
Всем привет! У меня возникла проблема. На работе написали консольное приложение, в котором отслеживается, кто, когда логинился в ОС и под...

syslog проблема со чтением логов
Не мог бы кто-то подсказать, возможно ли прочитать логи syslog за прошедший период времени, и если возможно, то как это сделать? ...

1
12 / 8 / 6
Регистрация: 10.07.2011
Сообщений: 374
Записей в блоге: 1
07.08.2019, 13:35  [ТС]
Решил проблему добавлением проверки на изменение размера файла в меньшую сторону.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.08.2019, 13:35
Помогаю со студенческими работами здесь

Проблема чтения символов ' (апостроф) и
Приветствую. Пытаюсь считать треки и их расположение с файла .plc функцией ExtractStrings, разделители: '|' Но если в строке попадаются 2...

Проблема чтения DBF файла
Приветствую всех кто это читает! У меня есть траб с чтение DBF файла. Вроде все идет хорошо до момента запроса к таблице, а проблема в том,...

Проблема чтения файла С++ abort() has been called
Здравствуйте. Ранее без проблем считывал данные с файлов в С++, а вчера появилась проблема. Попробовал скомпилировать небольшой код, узнать...

Проблема чтения значений из Newalue и OldValue
Доброго времени суток) Столкнулся с проблемой чтения значений из Newalue и OldValue. Пытаюсь сравнить их в DoBeforePost но выходят нулы, c...

Динамическая структура (СУБД на чистых c/c++, проблема занесения и чтения данных в таблицу)
Доброго времени суток. Пишу СУБД на чистых c/c++ столкнулся с проблемой занесение и чтение данных в таблицу. Структура файла такая: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru