原文本內容:java
2020-01-21 08:31:08.520 [main] INFO logbackCfg.App -秦時明月漢時關 2020-01-21 08:31:08.521 [main] ERROR logbackCfg.App -萬里長征人未還 2020-01-21 08:31:08.521 [main] DEBUG logbackCfg.App -但使龍城飛將在 2020-01-21 08:31:08.521 [main] TRACE logbackCfg.App -不教胡馬度陰山 2020-01-21 08:31:10.311 [main] INFO logbackCfg.App2 -九里山前做戰場 2020-01-21 08:31:10.317 [main] ERROR logbackCfg.App2 -牧童拾得舊刀槍 2020-01-21 08:31:10.317 [main] DEBUG logbackCfg.App2 -微風吹皺烏江水 2020-01-21 08:31:10.317 [main] TRACE logbackCfg.App2 -恰似虞姬別霸王 2020-01-21 08:31:13.521 [main] INFO logbackCfg.App -秦時明月漢時關 2020-01-21 08:31:13.521 [main] ERROR logbackCfg.App -萬里長征人未還 2020-01-21 08:31:13.521 [main] DEBUG logbackCfg.App -但使龍城飛將在 2020-01-21 08:31:13.521 [main] TRACE logbackCfg.App -不教胡馬度陰山 2020-01-21 08:31:14.262 [main] INFO logbackCfg.NewDayThread -萬里赴戎機,關山度若飛。 2020-01-21 08:31:14.267 [main] ERROR logbackCfg.NewDayThread -朔氣傳金柝,寒光照鐵衣。 2020-01-21 08:31:14.267 [main] DEBUG logbackCfg.NewDayThread -將軍百戰死,壯士十年歸。
使用以下程序進行替換:dom
package randomaccessfile; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; public class RndAccessFile { public static void main(String[] args) { RandomAccessFile rndFile = null; try { rndFile = new RandomAccessFile("D:\\logs\\rndTest.txt", "rw"); String line = null; long lastPoint = 0; while ((line = rndFile.readLine()) != null) { final long point = rndFile.getFilePointer(); // ASCII字符替換 if(line.contains("ERROR")){ String str=line.replace("ERROR", "error"); rndFile.seek(lastPoint); rndFile.writeBytes(str); } // UTF8字符替換 String utf8 = new String(line.getBytes("ISO-8859-1"),"UTF-8"); if(utf8.contains("秦時明月漢時關")){ String str=utf8.replace("秦時明月漢時關", "葡萄美酒夜光杯");// Must be same length rndFile.seek(lastPoint); rndFile.write(str.getBytes("UTF-8")); } lastPoint = point; } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { rndFile.close(); } catch (IOException e) { e.printStackTrace(); } } } }
替換結果:ide
2020-01-21 08:31:08.520 [main] INFO logbackCfg.App -葡萄美酒夜光杯 2020-01-21 08:31:08.521 [main] error logbackCfg.App -萬里長征人未還 2020-01-21 08:31:08.521 [main] DEBUG logbackCfg.App -但使龍城飛將在 2020-01-21 08:31:08.521 [main] TRACE logbackCfg.App -不教胡馬度陰山 2020-01-21 08:31:10.311 [main] INFO logbackCfg.App2 -九里山前做戰場 2020-01-21 08:31:10.317 [main] error logbackCfg.App2 -牧童拾得舊刀槍 2020-01-21 08:31:10.317 [main] DEBUG logbackCfg.App2 -微風吹皺烏江水 2020-01-21 08:31:10.317 [main] TRACE logbackCfg.App2 -恰似虞姬別霸王 2020-01-21 08:31:13.521 [main] INFO logbackCfg.App -葡萄美酒夜光杯 2020-01-21 08:31:13.521 [main] error logbackCfg.App -萬里長征人未還 2020-01-21 08:31:13.521 [main] DEBUG logbackCfg.App -但使龍城飛將在 2020-01-21 08:31:13.521 [main] TRACE logbackCfg.App -不教胡馬度陰山 2020-01-21 08:31:14.262 [main] INFO logbackCfg.NewDayThread -萬里赴戎機,關山度若飛。 2020-01-21 08:31:14.267 [main] error logbackCfg.NewDayThread -朔氣傳金柝,寒光照鐵衣。 2020-01-21 08:31:14.267 [main] DEBUG logbackCfg.NewDayThread -將軍百戰死,壯士十年歸。