2016-07-01 38 views
0

Also, ich versuche, diese App zu erstellen, und bin immer noch am Anfang, aber jedes Mal, wenn ich es ausführen und versuche, in der Datei Dictionary.txt zu schreiben, wird die Datei vollständig leer sein. Es würde in dieser anderen Sache, die ich gemacht habe, funktionieren, aber hier läuft es einfach gut, wird beendet, und wenn ich die Datei öffne, ist es leer, ungeschrieben. Derzeit auf Eclipse Mars, und es gibt mir keine Fehler (abgesehen von dem Zufall Objekt nicht verwendet wird, aber ich plane, es zu benutzen später.)Wird nicht in Datei geschrieben?

package mainPackage; 

import java.util.Random; 
import java.util.Scanner; 
import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.BufferedWriter; 

public class MainClass { 

    private static FileWriter fw; 
    private static BufferedWriter out; 
    private static Scanner input; 
    private static Scanner file; 
    private static Random slc; 

    public static void main(String[] args) throws IOException{ 

     fw = new FileWriter("C:/Users/ALAN_BARE/Desktop/Dictionary.txt" , true); 
     input = new Scanner(System.in); 
     file = new Scanner(new File("C:/Users/ALAN_BARE/Desktop/Dictionary.txt")); 
     out = new BufferedWriter(fw); 
     slc = new Random(); 

     String engword; 
     String gerword; 
     String response; 

     System.out.println("What do you want to do, register words or play the game?"); 
     response = input.nextLine(); 

     if(response.contains("register")){ 
      System.out.println("Type yor english word:"); 
      engword = input.nextLine(); 
      System.out.println("Type the translation in German:"); 
      gerword = input.nextLine(); 
      out.write(engword); 
      out.write(gerword); 

      if(file.hasNextLine()){ 
       out.newLine(); 
       out.newLine(); 
       out.write(engword); 
       out.write(" " + gerword); 
      } else{ 
       out.write(engword); 
       out.write(" " + gerword); 
      } 
     } else if(response.contains("Register")){ 

      System.out.println("Type yor english word:"); 
      engword = input.next(); 
      System.out.println("Type the translation in German:"); 
      gerword = input.next(); 

      if(file.hasNextLine()){ 
       out.newLine(); 
       out.newLine(); 
       out.write(engword); 
       out.write(" " + gerword); 

      } else{ 
       out.write(engword); 
       out.write(" " + gerword); 
      } 
     } 
    } 
} 
+2

'close()' die Ressourcen. 'out.close()' – Kartic

Antwort

2

die BufferedWriter schließen. out.close()

Vorschlag:

Put Code unten aus if-else-Block, da diese häufig sind

out.write(engword); 
out.write(" " + gerword);