У меня есть файл (точнее, файл конфигурации 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
Iхотите иметь возможность прочитать файл и заменить «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>
Я думаю, что может быть возможно использовать хэш-карту для этого типа реализации?