2017-11-16 7 views
1

こんにちは私は、出力をテキストファイルに書き込むプログラムをビルドしています。BufferedWriter write string by line

MyName 
Addres 
Location 
Paycheck 

をしかし、私は、テキストファイルに書き込むときには、次のようになります: は私のプログラムでは、私の文字列は次のようになります

MyName Addres Location Paycheck 

私は、単一のtoStringメソッドからすべてを書いています。バッファリングされた書き込みを使用して文字列を書式設定する方法を教えてください。ここで

は私のコードです:

       if (file != null) { 
            FileWriter fileWriter = null; 
            try { 
             fileWriter = new FileWriter(file.getAbsolutePath()); 

            } catch (IOException e) { 
             e.printStackTrace(); 
            } 
            BufferedWriter out = new BufferedWriter(fileWriter); 
            try { 
             out.write(emp.toString()); 
             out.close(); 
            } catch (IOException e) { 
             // TODO Auto-generated catch block 
             e.printStackTrace(); 
            } 
           } 

はEDIT:ここ

はEMPクラスのtoStringメソッドです:ファイルにテキストを書き込み中に

@Override 
public String toString() { 
    return "Name: " + name + " \nDOB: " + dob + " \nAddress: " + address + " \n******Paycheck******\nSalary: " 
      + myPaycheck.getSalary() + "\nFederal Income: " + myPaycheck.getTaxes() + "\nSocial Security: "+ myPaycheck.getSocialSecurity() + "\nMedicare: " + myPaycheck.getMedicare() 
      + "\nNet Salary: " + myPaycheck.getNetPay() + ""; 
} 
+0

EmployeeクラスのtoStringメソッドを表示してください。 –

+0

'emp'がどのように作成されたか、またはより良いものであることを示す必要があります。最小、完全、および検証可能な例があります(https://stackoverflow.com/help/mcveを参照)。これはかなりシンプルなプログラムなので、これは難しいことではありません。 – pcarter

答えて

0

あなたはSystem.lineSeparator()を使用する必要がありますいずれか、またはtoString()メソッドを変更して、追加された各行またはオブジェクト間に行区切り文字を追加する

あなたのコードはあなたの文字列を別々の行として書きます。出力ファイルから行を読み込み、各行を印刷すると、読者は各詳細を別々の行として扱うことがわかります。今度はファイルの次の行に表示されるように正確な書式でファイルに書きたい場合は、オブジェクトをArrayListに追加して同じものを繰り返して入力する必要があります。

3

bufferedwriter API "newLine"を簡単に使用できます。

+0

私はそれを試みたが、うまくいかなかった。文字列を循環させる必要がありますか? –