2015-01-26 5 views
0

Я создал простую программу, которая создаст банковский счет и баланс Эта программа спросит количество учетных записей, которые вы хотите создать, после чего вы будете вводить номер счета и балансы.Как написать несколько текстовых файлов без перезаписи

Теперь проблема заключается в том, что при написании нового номера учетной записи это просто переписывание, поэтому текст, который входит в мой файл, составляет всего 1 строку;

Вот мой текущий код:

import java.util.*; 

import javax.swing.JOptionPane; 

public class CreateBankFile { 
    public static Formatter sample; 
    public static int account; 
    public static int balance; 
    public static void main(String[] args) { 
     createBank(); 
     createFile(); 
     addRecords(); 
     closeFile(); 
    } 

    public static void createBank() { 
     int loops = Integer.parseInt(JOptionPane.showInputDialog(null, 
       "How many accounts \nyou wanted to create?")); 
     for (int i = 1; i <= loops; i++) { 
      account = Integer.parseInt(JOptionPane.showInputDialog(null, 
        "Enter account number:")); 
      balance = Integer.parseInt(JOptionPane.showInputDialog(null, 
        "Enter balance:")); 
     } 
    } 

    public static void createFile() { 
     try { 
      sample = new Formatter("BankAccounts.txt"); 
     } catch (Exception e) { 
      System.out.println("You got an error!"); 
     } 
    } 

    public static void addRecords() { 
     sample.format("%s%s", account + "\t", balance); 
    } 

    public static void closeFile() { 
     sample.close(); 
     JOptionPane.showMessageDialog(null, "You successfully created bank accounts!"); 
    } 
} 

Спасибо, надеюсь, что вы ответить на этот вопрос

+2

Есть как zillion учебники о том, как писать файлы в Java ... – Smutje

+1

Вам нужно добавить новый текст, а не просто писать. – Stultuske

+0

Возможный дубликат [как писать байты в файле без его перезаписи] (http://stackoverflow.com/questions/4568940/how-to-write-bytes-in-a-file-without-overwriting-it) –

ответ

0
// create an output stream to the file in append mode rather than overwrite mode 
FileOutputStream out = new FileOutputStream("BankAccounts.txt", true); 
// create a Formatter which writes to this stream 
Formatter formatter = new Formatter(out); 

Java-учебники и Javadoc являются вашими друзьями. Используй их.

+0

Спасибо, но он все еще записывается в одну строку, я хочу его в другой строке . Я попытался «\ n», но он по-прежнему продолжается –

+0

Затем убедитесь, что строки, которые вы добавляете к вашему файлу, содержат символ новой строки в конце. Они этого не делают. –

+0

sample.format ("% s% s% s", аккаунт + "\ t", баланс, "\ n"); это код, который я изменил для, или мне нужно изменить все мои коды на другой способ? как добавление? Я не использую append –

0

Ваш метод createBank хранит только последние входы для счета и баланс в переменных, а addRecords вызывается только один раз.
Звоните addRecords внутри цикла в createBank и createFile до createBank.

public static void main(String[] args) { 
    createFile(); 
    createBank(); 
    closeFile(); 
} 

public static void createBank() { 
    int loops = Integer.parseInt(JOptionPane.showInputDialog(null, 
      "How many accounts \nyou wanted to create?")); 
    for (int i = 1; i <= loops; i++) { 
     account = Integer.parseInt(JOptionPane.showInputDialog(null, 
       "Enter account number:")); 
     balance = Integer.parseInt(JOptionPane.showInputDialog(null, 
       "Enter balance:")); 
     addRecords(); 
    } 
} 

И добавить новую строку в addRecords.

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