Найти и заменить слова / строки в файле

У меня есть файл (точнее, файл конфигурации log4j), и я хочу иметь возможность читать в файле и выбирать определенные строки в коде и заменять их . Например, внутри файла есть строка текста, которая указывает каталог, в котором он хранится, или уровень регистратора. Я хочу иметь возможность заменить эту строку текста, не читая файл, не записывая его в другой файл и не удаляя исходный файл. Есть ли более эффективный способ поиска и замены текстов в файле с помощью Java?

Вот пример текстового файла, с которым я пытаюсь работать:

log4j.rootLogger=DEBUG, A0

log4j.appender.A0=org.apache.log4j.RollingFileAppender
log4j.appender.A0.File=C:/log.txt
log4j.appender.A0.MaxFileSize=100KB
log4j.appender.A0.MaxBackupIndex=1

log4j.appender.A0.layout=org.apache.log4j.RollingFileAppender
log4j.appender.A0.layout.ConversionPattern=%-4r [%t] %-5p: %c %x - %m%n

Я хочу иметь возможность читать файл и замените «DEBUG» другим уровнем или замените имя каталога файлов «C: /log.txt». Файл конфигурации журнала также написан в xml. Пример этого показан ниже.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
    <appender class="org.apache.log4j.RollingFileAppender" name="A0">
        <param name="append" value="false"/>
        <param name="File" value="C:/log/.txt"/>
        <param name="MaxBackupIndex" value="1"/>
        <param name="MaxFileSize" value="100KB"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-4r [%t] %-5p: %c %x - %m%n"/>
        </layout>
    </appender>
    <root>
        <level value="DEBUG"/>
        <appender-ref ref="A0"/>
    </root>
</log4j:configuration>

Я думаю, что можно использовать хеш-карту для этого типа реализации?

52
задан afuzzyllama 15 June 2015 в 16:03
поделиться