2015-03-19 6 views
-1

Таким образом, этот код позволяет пользователям сохранять свой объект, созданный в основном. Однако я хочу создать функцию (если я думаю), которая спросит пользователей, хотят ли они ее сохранить (results.txt). Если они это сделают, сохраните, а затем выйдите из программы.Как создать Да/Нет?

import java.io.FileOutputStream; 
    import java.io.FileInputStream; 
    import java.io.FileNotFoundException; 

    public class Main { 
     public static void main(String args[]) { 

      Person arthur = new Person(); 

      arthur.name = "Arthur Dent"; 
      arthur.age= 21; 

      System.out.println("\nDo you wish to save these results? (Y/N)"); 

      String fileName = "results.txt"; 
      try { 

       ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(fileName)); 

       os.writeObject(arthur); //write object 
       os.close(); 

      } catch (IOException e) { 
       e.printStackTrace(); 

      } 
      System.out.println("\nYour results are saved!"); 
     } 
    } 
+1

Вы хотите знать, как запросить пользователя или создать оператор 'if'? – MadProgrammer

+0

Отформатируйте свой код, прежде чем отправлять его здесь, пожалуйста. Вы можете использовать этот онлайн-инструмент для этого: http://codebeautify.org/javaviewer – Behrang

+0

Посмотрите на класс сканера 'new Scanner (System.in);' –

ответ

1

Следуйте за порядком Scanner. Пример того, как работает сканер (применительно к вашему вопросу):

public class Test2 { 
    static Boolean bool=true; 
    public static void main(String[] args){ 
     System.out.println("Type Y or N:"); 
     //Initialise the scanner object for the first time 
     //Save what the user inputs as s 
     Scanner sc = new Scanner(System.in); 
     String s=sc.next(); 
     //Now you enter a while loop 
     //You will quit this loop if a condition is met 
     //If you want to you can set the bool to false and the while loop will end 
     while (bool){ 
      //if what the user entered is not equal to Y or N 
      //then prompt him to try again 
      if (!s.equals("Y") && !s.equals("N")){ 
       System.out.println("Please type only Y or N:"); 
       sc = new Scanner(System.in); 
       s=sc.next(); 

      } 
      //if the user actually entered Y 
      if (s.equals("Y")){ 
       //Do your code logic here 
       //In your case that is saving your object 
       //Then you can exit the program if that's what you want 
       System.exit(1); 

      } 
      if (s.equals("N")){ 
       //Add code logic if the user enters N if you need to 
       //Exit the program if that's what you want 
       System.exit(1);   
      } 
     }      
    } 
} 

Если вы играете с указанным кодом, вы быстро сможете интегрировать его с вашей проблемой.

+0

Большое спасибо. Не могли бы вы прокомментировать пару строк для этого класса, так что я лучше понимаю. Еще раз спасибо. –

+0

Также что вы подразумеваете под // Сохраняете ли вы здесь? Что я там ставлю? –

+0

Я добавил несколько комментариев для вас. – Theo

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