查找和替换文件中的单词/行
我有一个文件(更具体地说,一个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>
我认为可以使用哈希映射来实现这种类型的实现?