Java System.out.flush()未刷新标准输出缓冲区
我用于计算nCrTable的代码即使包含了Java System.out.flush()未刷新标准输出缓冲区,java,writing,Java,Writing,我用于计算nCrTable的代码即使包含了System.out.flush(),也不会刷新stdout,这是刷新问题还是其他问题 当nHard相信时,它会给出正确的输出。实际上不可能。flush()方法不知道循环计数器的值。我认为问题出在其他地方。你是如何处理这个问题的?这可能是终端/IDE控制台的问题。为什么你认为flush()不是flush?@ring bearer我正在eclipse(luna)上运行这段代码…右键单击控制台>首选项>控制台缓冲区大小,并将其设置为一个非常大的数字,看看是否
System.out.flush()
,也不会刷新stdout
,这是刷新问题还是其他问题
当
nHard相信时,它会给出正确的输出。实际上不可能。flush()方法不知道循环计数器的值。我认为问题出在其他地方。你是如何处理这个问题的?这可能是终端/IDE控制台的问题。为什么你认为flush()不是flush?@ring bearer我正在eclipse(luna)上运行这段代码…右键单击控制台>首选项>控制台缓冲区大小,并将其设置为一个非常大的数字,看看是否有帮助
package nCrTable;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Scanner;
public class solution {
public static void main(String args[]) throws IOException{
Scanner sc=new Scanner(System.in);
int count=sc.nextInt();
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
for(int i=0;i<count;i++){
makenCr(sc.nextInt(),bw);
}
sc.close();
}
public static void makenCr(int n,BufferedWriter bw) throws IOException{
int nCr[]=new int[(n+2)/2];
long amount=1;
nCr[0]=1;
int no=1000000000;
System.out.print(nCr[0]+" ");
System.out.flush();
int i;
for( i=1;i<(n+2)/2;i++){
nCr[i]=(int)((amount*(n-i+1)/i)% no);
amount=nCr[i];
System.out.print(nCr[i]+" ");
System.out.flush();
}
while(i<n+1){
System.out.print(nCr[n-i]+" ");
System.out.flush();
i++;
}
System.out.println();
}
}