2015-02-03 3 views
-2

Я пытаюсь сделать так, чтобы каждый цикл программ сохранялся в файл. В настоящее время у меня есть следующее:Java: проблема с сохранением переменных

import java.io.*; 
import java.lang.System; 
import java.util.Scanner; 

public class writing { 



    public static void main(String[] args){ 
     Scanner input = new Scanner(System.in); 
     Scanner input1 = new Scanner(System.in); 

     String FileName = input.next(); 
     String x = input.next(); 

     for(int i=0; i<'x'; i++){ 

      System.out.println("Question"); 
      String MainQ = input1.nextLine(); 
      System.out.println("Option 1: "); 
      String Op1 = input1.nextLine(); 
      System.out.println("Option 2: "); 
      String Op2 = input1.nextLine(); 
      System.out.println("Option 3: "); 
      String Op3 = input1.nextLine(); 
      System.out.println("Correct Answer (Option Number:) "); 
      String An1 = input1.next(); 

      System.out.println("Quesiton 1:"+ MainQ); 
      System.out.println(""+ Op1); 
      System.out.println(""+ Op2); 
      System.out.println(""+ Op3); 
      String UAn1 = input1.next(); 
      if (UAn1 == An1){ 
       System.out.println("Incorrect");  
       System.out.println("Answer is: " + An1); 
      }else{ 
       System.out.println("Correct"); 

      } 

      try{ 

       FileWriter fw = new FileWriter(FileName + ".txt"); 
       PrintWriter pw = new PrintWriter(fw); 

       pw.println(MainQ); 
       pw.println(Op1); 
       pw.println(Op2); 
       pw.println(Op3); 
       pw.println(An1); 

       pw.close(); 

      } catch (IOException e){ 
       System.out.println("Error!"); 
      } 

     } 
    } 
} 

Неправильное сообщение, извините за плохой вопрос. Я хотел бы, чтобы каждый раз, когда шлейфы программа для текстового файла, чтобы выйти, как это:

(Question 1) Question Example 
(Option 1) Option Example .... 

(Question 2) Question Example 
(Option 1) Option Example 

... и так далее. Но то, как он работает в настоящее время он записывает только последний вход

Coming вот так: (Представьте себе, я использую 3 для третьего вопроса и номер опции)

3 
3 
3 
3 
+3

В чем проблема? Включите все исключения/сообщения об ошибках. – ryanyuyu

+0

Там нет сообщения об ошибке, извините за плохой вопрос. Я хотел бы, чтобы каждый раз, когда петли программы для текстового файла, чтобы выйти, как это: (Вопрос 1) * Вопрос * Пример (Вариант 1) * Опция Пример * .... (Вопрос 2) * Пример вопроса * (Вариант 1) * Пример варианта * и так далее. Но так, как он работает, теперь он записывает только последний вход. – Deadliestrat

+0

Ну, если 'filename' всегда одна и та же переменная, тот же файл будет всегда создан. Что делать? – kolossus

ответ

2

Как вы создаете FileWriter внутри цикл for всегда переписывает содержимое, поэтому, по-видимому, остается только последнее содержимое. Вы должны переместить линии

 FileWriter fw = new FileWriter(FileName + ".txt"); 
     PrintWriter pw = new PrintWriter(fw); 

перед for в заявлении (и попытаться/поймать блок accoringly).

1

Открыть FileWriter в режиме добавления, иначе он просто перезапишет ваш текстовый файл вместо добавления к нему. См. FileWriter constructor documentation.

Также, как указывали другие, camelCase является условным обозначением для имен переменных в Java, а не PascalCase, а вы must not compare strings with == in Java.

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