2013-10-18 62 views
0

因此,最近,我父親要求我做一個涉及收集用戶名,密碼等的項目,以便他有一個設置位置來查找他所有的登錄信息。如何在Java的不同行上多次寫入文本文檔?

我有一個程序可以成功收集信息,並且每次運行程序時都會寫入一個新的文本文件。我的目標是讓信息存儲在同一個文件中,但每一組信息之間都有一個空格。

這裏是我的代碼(我很抱歉,我只是14):

package com.src.java; 

import java.io.IOException; 
import java.io.PrintWriter; 

import java.net.MalformedURLException; 

import javax.swing.JOptionPane; 
import javax.swing.JTextField; 
import javax.swing.UIManager; 

public class Info { 

    public static void main(String args[]) throws MalformedURLException, 
      IOException, InterruptedException { 
     boolean run = true; 
     while (run) { 
      JTextField companyName = new JTextField(); 
      JTextField userName = new JTextField(); 
      JTextField password = new JTextField(); 
      JTextField accountNumber = new JTextField(); 
      JTextField phoneNumber = new JTextField(); 
      JTextField address = new JTextField(); 

      UIManager.put("OptionPane.cancelButtonText", "Exit"); 
      UIManager.put("OptionPane.okButtonText", "Create File"); 
      Object[] message = { "Company name: ", companyName, "Username:", 
        userName, "Password:", password, "Account number:", 
        accountNumber, "Phone number:", phoneNumber, "Address:", 
        address, }; 
      int option = JOptionPane.showConfirmDialog(null, message, 
        "Fill out your info...", JOptionPane.OK_CANCEL_OPTION); 
      if (option == JOptionPane.OK_OPTION) { 
       String cN = companyName.getText(); 
       String uN = userName.getText(); 
       String pw = password.getText(); 
       String aN = accountNumber.getText(); 
       String pN = phoneNumber.getText(); 
       String ad = address.getText(); 

       PrintWriter writer = new PrintWriter(cN + ".txt", "UTF-8"); 

       writer.println("Company name: " + cN); 
       writer.println("User name: " + uN); 
       writer.println("Password: " + pw); 
       writer.println("Account number: " + aN); 
       writer.println("Phone number: " + pN); 
       writer.println("Address " + ad); 
       writer.close(); 

       System.out.println("Wrote file: " + cN + ".txt"); 
       Thread.sleep(500); 
      } else { 
       System.exit(0); 
      } 
     } 
    } 
} 
+1

可能的[Java文件 - 打開文件並寫入它]的副本(http://stackoverflow.com/questions/10667734/java-file-open-a-file-and - 寫到它) – sab669

+0

我明白這可能是一個學習練習,但是當它來到t o存儲密碼,我真的會建議像KeePass。如果密碼是純文本文件,黑客也可以方便地將所有內容都放在一個地方(如家庭網上銀行密碼)。 –

+1

[PrintWriter append method not appending]可能重複(http://stackoverflow.com/questions/8210616/printwriter-append-method-not-appending) –

回答

1

你寫來改變文件名與任何公司的名稱是真實輸入。硬編碼的文件名。

此外,設置追加模式爲true ...

1

如果你想寫入同一個文件,你可以追加方式打開它,所以

new PrintWriter(new FileOutputStream(new File(filename),true)); 

true以追加模式打開文件

+0

好的,謝謝!但是,當您設置文件時,它會將信息寫入不同的行嗎? – TaboriteTurtle

+0

是的,每個'println'將打印到一個單獨的行。您也可以打印儘可能多的空白行。 –

+0

好的,謝謝一堆!它現在很好用。 – TaboriteTurtle

相關問題