2017-10-11 1 views
0

Ich habe versucht, ein einfaches Bankkonto in Java zu erstellen und möchte den eingegebenen Benutzernamen in einem TXT-Dokument speichern. Das einzige Problem ist, dass der Name in der ersten Zeile des Textdokuments jedes Mal ersetzt wird, wenn ich den Code ausführe.Wie schreibe ich eine neue Zeile mit FileWriter in Java?

package bank.account; 
import java.util.Scanner; 
import java.io.*; 

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


    Scanner sc = new Scanner(System.in); 
    BankAccount userAccount = new BankAccount(); 
    System.out.println("Please enter your name in order to make a new account:"); 


    String fileName = "name.txt"; 
    try { 
     FileWriter fileWriter = 
       new FileWriter(fileName); 
     BufferedWriter bufferedWriter = 
       new BufferedWriter(fileWriter); 

     String name = sc.nextLine(); 
     userAccount.setaccName(name); 
       bufferedWriter.write(userAccount.getaccName()); 
       bufferedWriter.close(); 

    } 
    catch(IOException ex) { 
      System.out.println(
       "Error writing to file '" 
       + fileName + "'"); 

     } 

    System.out.println("Please enter the amount you would like to deposit"); 
    double money = sc.nextDouble(); 
    userAccount.deposit(money); 
    System.out.println(userAccount.getaccBalance()); 
    System.out.println(userAccount.getaccName()+ " your balance is " + userAccount.getaccBalance()); 

    } 

} 
+1

Diese Frage hat bereits eine Antwort hier: https://stackoverflow.com/questions/18549704/java-filewriter-create-a-new-line – deHaar

+0

FileWriter.write ("\ n"); Fügen Sie der Datei den Zeilenumbruch hinzu. – Lokesh

+0

Bessere 'newLine()' der 'BufferedWriter' Klasse. – dooxe

Antwort

2

Sie überschreiben den Inhalt der Datei durch die Verwendung von new FileWriter(fileName); (lesen Sie die JavaDoc auf dieser Klasse/Baumeister). Verwenden Sie stattdessen new FileWriter(fileName, true); bis , um stattdessen die Datei an die Datei anzufügen.

Beachten Sie auch, dass Sie vor dem Namen ein Zeilenvorschubzeichen ("\n") anhängen müssen, wenn die Datei nicht leer ist, sonst erhalten Sie alle Namen in einer Zeile.

2

Dieser Code öffnet oder erstellt eine Datei und fügt den neuen Text in eine neue Zeile ein.

PrintStream fileStream = new PrintStream(new File("a.txt")); 
fileStream.println(userAccount.getaccName()); 

Auch können Sie die FileWriter mit dem param erstellen „append = true“ und dann wird das Ergebnis nur in eine neue Zeile angefügt.

// FileWriter(File file, boolean append) 
FileWriter fileWriter = 
       new FileWriter(filePathName, shouldAppend); 
Verwandte Themen