2016-10-13 7 views
1

У меня проблемы с одной из моих программ, и я надеялся, что сообщество SO может помочь. Поэтому у меня есть эта программа, которая просит пользователя ввести номер. После ввода номера программа отобразит серию X. Пример позволяет говорить о том, что пользователь вводит 8. Программа будет отображать 8 х годов в строке и столбце, как это:Написание шаблонов Java в файл

XXXXXXXX                   
XXXXXXXX                   
XXXXXXXX                     
XXXXXXXX                  
XXXXXXXX 
XXXXXXXX 
XXXXXXXX 
XXXXXXXX 

Проблема у меня есть мне нужно написать это в файл. Я могу получить его только для печати одной строки X. Поэтому, если кто-нибудь может сказать мне, как сделать так, чтобы диаграмма выше напечатала на squares.txt, это было бы потрясающе.

import java.util.Scanner; 
import java.io.*; 
public class squareOutput { 

public static void main(String[] args) throws IOException { 
    Scanner keyboard = new Scanner(System.in); 
    System.out.println("Please enter a integer between 1 and 15"); 
    int number = keyboard.nextInt(); 
    while (number > 15 || number <1){ 
     System.out.println("Sorry, thats a invalid number"); 
     number = keyboard.nextInt(); 
    } 
     keyboard.nextLine(); 
    keyboard.close(); 
    FileWriter fwriter = new FileWriter("square.txt", true); 
    PrintWriter outputFile = new PrintWriter(fwriter); 

     for (int r = 0; r < number; r++) 
     { 


      for (int c = 0; c < number; c++) 
      { 
       System.out.print("X"); 

       outputFile.print("X"); 
      } 
      outputFile.println(""); 
      System.out.println(""); 



      outputFile.close(); 
     } 
    } 

}

+0

Вот весь код, который я имею –

+1

Вам нужно не называть 'outputFile.close()' после первой строки, если вы не хотите, чтобы закрыть файл после первой строки. – immibis

ответ

3

outputFile.close(); должен быть вне для цикла. Вы хотите закрыть файл только после завершения записи.

import java.util.Scanner; 
import java.io.*; 
public class squareOutput { 

public static void main(String[] args) throws IOException { 
    Scanner keyboard = new Scanner(System.in); 
    System.out.println("Please enter a integer between 1 and 15"); 
    int number = keyboard.nextInt(); 
    while (number > 15 || number <1){ 
     System.out.println("Sorry, thats a invalid number"); 
     number = keyboard.nextInt(); 
    } 
     keyboard.nextLine(); 
    keyboard.close(); 
    FileWriter fwriter = new FileWriter("square.txt", true); 
    PrintWriter outputFile = new PrintWriter(fwriter); 

     for (int r = 0; r < number; r++) 
     { 


      for (int c = 0; c < number; c++) 
      { 
       System.out.print("X"); 

       outputFile.print("X"); 
      } 
      outputFile.println(""); 
      System.out.println(""); 



      // outputFile.close(); <-- NOT HERE 
     } 
     outputFile.close(); // <-- HERE 
    } 
} 
+0

Спасибо за помощь! –

+0

Я приму свой ответ через 4 минуты, он говорит, что мне нужно подождать –

Смежные вопросы