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

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

07.08.2019, 02:03. Показов 1417. Ответов 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 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru