2017-11-05 8 views
1

다이아몬드 패턴을 파일로 인쇄하는 Java 프로그램을 작성 중입니다. 패턴이 콘솔에 올바르게 인쇄되지만 파일이 제대로 인쇄됩니다.PrintWriter를 사용하여 파일에 자바 인쇄 패턴

  static void print_row(int cnt,PrintWriter output) 
      { 
       while(cnt --> 0) 
        System.out.print("* "); 
        output.print("* "); // or for loop, I just think --> is cute 
        output.println(); 
        System.out.println(); 
      } 

      static void diamond(int maxrow, int row,PrintWriter output) 
      { 
       if (row >= maxrow) 
       { 
        print_row(row,output); 
       } 
       else 
       { 
        char[] chart = new char[maxrow-row]; 
        Arrays.fill(chart,' '); 
        String t = new String(chart); 

        System.out.print(t); 
        output.print(t); 
        print_row(row,output); 

        diamond(maxrow, row+2,output); 
        char[] chard = new char[maxrow-row]; 
        Arrays.fill(chard,' '); 
        String d = new String(chard); 
        output.print(d); 
        System.out.print(d); 
        print_row(row,output); 
       } 
      } 

출력 print_rowwhile의 루프 만이 루프 위에 System.out.println

   * 
       * 
      * 
      * 
     * 
      * 
      * 
       * 
       * 
+0

질문이 ... 나에게 이해가되지 않습니다이 파일에 제대로 인쇄되지 않는 이유는 무엇입니까? – Fuhrmanator

답변

0

같다 : 다음 코드이다. 하여 PrintWriter에서 터미널에서 동일한 출력을 얻으려면, 당신은 너무 루프에 포함시켜야합니다 :

static void print_row(int cnt, PrintWriter output) 
{ 
    while(cnt --> 0) { 
     System.out.print("* "); 
     output.print("* "); // Here! 
    } 
    output.println(); 
    System.out.println(); 
}