printstreamで正規表現を置き換えることは可能ですか?
コンソール ウィンドウに表示されるすべてのテキストをログに記録するコードがありますが、ANSI エスケープ コードもログに記録します。
私はこの正規表現"s:\x1B\[[0-9;]*[mK]::g"
がそれらを削除することを発見しましたが、それは文字列でのみ機能します。文字列の定数ストリームに正規表現置換を適用し、ANSI エスケープ コードを除外する方法はありますか?
プログラミングに関しては、私はまだ初心者であり、すでにプログラムを構築しているだけです。
編集:
スタックオーバーフローで別の場所で見つけたこのコードがあります。これにより、ログファイルとコンソールに同時にストリーミングできます。
これは私が使用するもので、この後ティーに出します。
Logging tee = new Logging(file, System.out);
.
package com.md_5.mc.chat;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
public class Logging extends PrintStream
{
private final PrintStream second;
public Logging(OutputStream main, PrintStream second)
{
super(main);
this.second = second;
}
public void close()
{
super.close();
}
public void flush()
{
super.flush();
this.second.flush();
}
public void write(byte[] buf, int off, int len)
{
super.write(buf, off, len);
this.second.write(buf, off, len);
}
public void write(int b)
{
super.write(b);
this.second.write(b);
}
public void write(byte[] b) throws IOException
{
super.write(b);
this.second.write(b);
}
}