gpt4 book ai didi

java - 奇怪的输出打印到错误屏幕(System.err)

转载 作者:行者123 更新时间:2023-11-30 06:37:04 24 4
gpt4 key购买 nike

出于测试目的,我在主程序中运行三个线程。一切都工作正常并且完成了它应该做的事情。

但是,我注意到在控制台上我得到以下输出(红色):

[Stage 242:=====================================================> (36 + 1) / 37]

[Stage 246:==============================================> (31 + 1) / 37]

[Stage 249:====================================================> (36 + 1) / 38]

[Stage 260:=================================================> (35 + 1) / 39]

[Stage 263:==================================================> (37 + 1) / 40]

[Stage 267:==================================================> (37 + 1) / 40]

[Stage 270:=====================================================> (40 + 1) / 41]

[Stage 274:==================================================> (38 + 1) / 41]

[Stage 277:================================================> (37 + 1) / 42]

[Stage 281:============================================> (34 + 1) / 42]

[Stage 288:=================================================> (39 + 1) / 43]

[Stage 291:===========================================> (35 + 1) / 44]

[Stage 295:================================================> (39 + 1) / 44]

[Stage 298:==========================================> (35 + 1) / 45]

当我的主程序继续运行时,程序会不断地打印这些连续行。谁能向我解释一下这是什么意思以及它是否会影响我的程序?

编辑:这是到目前为止我的代码。一个线程每秒生成一个文件,另一个线程有一个函数读取该文件然后删除它,最后一个线程不断要求用户输入,并根据该输入影响一个函数:

    static PredictiveModelDemo pmDemo;

public static void main(String[] args) {
// TODO Auto-generated method stub
pmDemo = new PredictiveModelDemo();
new Thread(new generateFiles()).start();
new Thread(new feedModel()).start();
new Thread(new makePrediction()).start();
}

static class generateFiles implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
File file = new File("C:\\Users\\ZK0GJXO\\Documents\\NoOfTrades.txt");
int i = 1;
while(true){
try {
if(!file.exists()){
PrintWriter writer = new PrintWriter("C:\\Users\\ZK0GJXO\\Documents\\NoOfTrades.txt");
writer.print(i * 15);
writer.close();
i++;
}
else{
i++;
Thread.sleep(1000);
}

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

static class feedModel implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
pmDemo.feedModel();
}
}
static class makePrediction implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("Enter P to make a prediction: ");
Scanner in = new Scanner(System.in);
String response = in.next();
while(true){
if(response.toUpperCase().equals("P")){
pmDemo.makePrediction();
response = "";
System.out.println("Enter P to make a prediction: ");
response = in.next();
}
}
}
}

最佳答案

红色输出是 stderr 输出。它可能是您正在使用的库之一的日志输出,无论 PredictiveModelDemo 来自何处。

您是否使用任何日志记录库,例如 JUL 或 log4j?如果是,并且这些库正确使用了 java 的日志框架,您可以过滤掉您不感兴趣的日志行。

库也可能直接调用System.err.println,尽管强烈不鼓励这样做。如果是这样,您对此无能为力。

无论哪种方式,它都不应该影响您的程序。

关于java - 奇怪的输出打印到错误屏幕(System.err),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45042936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com