System.out.println() 在 for 循环中无法正常工作
System.out.println() doesn't work as i want in the for loop
首先,我很抱歉我的英语不好。我在使用我的语言的论坛上写下了我的问题。但我没有得到答案。我希望你能帮助我。
当我编写 for 循环时,System.out.println()
或 JTextArea.setText()
命令在循环结束时开始工作。我的部分代码:
for(int pixelCount = 0;pixelCount<pixelLength;pixelCount++){
System.out.println("Progress..:"+pixelCount+"/"+pixelLength);
int x = pixelCount%Image.getWidth();
int y = pixelCount/Image.getWidth();
if(isChange==1){
if(new Color(Image.getRGB(x, y)).getRed()%2==0){
Image.setRGB(x, y,new Color(new Color(Image.getRGB(x, y)).getRed()+1,
new Color(Image.getRGB(x, y)).getGreen(),
new Color(Image.getRGB(x, y)).getBlue(),
new Color(Image.getRGB(x, y)).getAlpha()).getRGB());}
}
循环有时很长。所以我将它打印在屏幕上以查看循环的进度。当我按下按钮时循环开始。但是当我按下按钮时,System.out.println() 命令会在之后查看。
编辑:我应该如何写循环中的进度?
编辑:我解决了问题,朋友们。 System.out.println () 命令工作正常。在 for 循环开始之前有一个替换命令。在 for 循环开始之前,程序会在那里停留一段时间。感谢所有花时间帮助我的人
打印后调用 System.out.flush()
,或使用 System.err.println
。
System.out
是一个缓冲流,它会在缓冲区已满、刷新缓冲区或系统认为有用的其他时间打印。 System.err
是无缓冲的,也是调试和诊断信息(如进度信息)的首选流。
Erwin Bolwidt 已经提到 System.our.flush() 的使用。输出的工作方式很大程度上取决于您使用的 OS (和终端)的类型。例如,对于 *nix 系统,您可以考虑某种类似于 Curses 的库(它最初是一个 C 库,但我确信有一些 Java 实现)。
首先,我很抱歉我的英语不好。我在使用我的语言的论坛上写下了我的问题。但我没有得到答案。我希望你能帮助我。
当我编写 for 循环时,System.out.println()
或 JTextArea.setText()
命令在循环结束时开始工作。我的部分代码:
for(int pixelCount = 0;pixelCount<pixelLength;pixelCount++){
System.out.println("Progress..:"+pixelCount+"/"+pixelLength);
int x = pixelCount%Image.getWidth();
int y = pixelCount/Image.getWidth();
if(isChange==1){
if(new Color(Image.getRGB(x, y)).getRed()%2==0){
Image.setRGB(x, y,new Color(new Color(Image.getRGB(x, y)).getRed()+1,
new Color(Image.getRGB(x, y)).getGreen(),
new Color(Image.getRGB(x, y)).getBlue(),
new Color(Image.getRGB(x, y)).getAlpha()).getRGB());}
}
循环有时很长。所以我将它打印在屏幕上以查看循环的进度。当我按下按钮时循环开始。但是当我按下按钮时,System.out.println() 命令会在之后查看。
编辑:我应该如何写循环中的进度?
编辑:我解决了问题,朋友们。 System.out.println () 命令工作正常。在 for 循环开始之前有一个替换命令。在 for 循环开始之前,程序会在那里停留一段时间。感谢所有花时间帮助我的人
打印后调用 System.out.flush()
,或使用 System.err.println
。
System.out
是一个缓冲流,它会在缓冲区已满、刷新缓冲区或系统认为有用的其他时间打印。 System.err
是无缓冲的,也是调试和诊断信息(如进度信息)的首选流。
Erwin Bolwidt 已经提到 System.our.flush() 的使用。输出的工作方式很大程度上取决于您使用的 OS (和终端)的类型。例如,对于 *nix 系统,您可以考虑某种类似于 Curses 的库(它最初是一个 C 库,但我确信有一些 Java 实现)。