如何过滤PrintStream

时间:2014-10-05 22:03:28

标签: java irc chatbot

我正在尝试使用PircBotX对基本的irc聊天机器人进行编码。我想将聊天输出到文本文件,但无法找到方法。我正在编写自己的代码并可以将控制台输出到一个文件,其中的行看起来像这样:

13:12:09.110 [botPool0-bot0] INFO org.pircbotx.InputParser - :jdbener!jdbener @ jdbener.tmi.twitch.tv PRIVMSG#irish_00:yay

我想把它写成这样的文件:

13:12<抽搐> Jdbener:yay

以下是我对编写器文件的代码:

public class writer extends OutputStream {
public void write(int b) throws IOException {
     String Output = String.valueOf((char)b);
     FileWriter writer = new FileWriter("output-dirty.txt", true);
     writer.append(Output);
     writer.close();
     testbot.stringB.append(Output);
 }
 }

如果您需要任何其他信息,请告诉我,我会提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

如果问题是如何做到这一点:

13:12:09.110 [botPool0-bot0] INFO org.pircbotx.InputParser - :jdbener!jdbener@jdbener.tmi.twitch.tv PRIVMSG #irish_00 :yay

看起来像这样:

13:12 < Twitch> Jdbener: yay

你可以这样做:

 String a = "13:12:09.110 [botPool0-bot0] INFO org.pircbotx.InputParser - :jdbener!jdbener@jdbener.tmi.twitch.tv PRIVMSG #irish_00 :yay";

 String[] b = a.split(":");

 String c =   b[0] + ":" + 
              b[1] + 
              "<Twitch>" +
              b[3].split("!")[0].replace(b[3].split("!")[0].charAt(0), Character.toUpperCase(b[3].split("!")[0].charAt(0))) + 
              ": " +
              b[b.length - 1];

使用System.out.println(c);进行测试会输出:13:12<Twitch>Jdbener: yay

当然我假设与原String有一定的一致性。如果答案不能很好地工作,那么再粘贴一些示例输入Strings并更新答案。