我已經做了一個javafx應用程序,將一個訂單寫入一個txt文件,然後即時閱讀txt文件到一個textarea。 我的代碼正在工作並正在打印文件,但我不知道如何正確地格式化它。我是javafx的noob,我寫錯了嗎?任何幫助表示讚賞寫入一個文本文件,然後讀回到一個textarea javafx
這是寫入文件的代碼的主要部分。
Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
BufferedWriter bf = new BufferedWriter(new FileWriter("receipt.txt"));
bf.write("*************SHERIDAN BAGEL SHOP*************,");
bf.newLine();
bf.write(ft.format(date));
bf.newLine();
bf.write("Item:\t\t\tQty\tAmount,");
bf.newLine();
bf.write("\t\t\t\t-----------");
bf.newLine();
bf.write("Pretax Total\t\t\t$"+df.format(cost)+",");
bf.newLine();
bf.write("Sales Tax 13%\t\t\t$"+df.format(calctax)+",");
bf.newLine();
bf.write("Total Sale\t\t\t$"+df.format(calctotal)+",");
bf.newLine();
bf.write("*********THANK YOU FOR YOUR ORDER*********,");
bf.close();
這是文本文件輸出
*************SHERIDAN BAGEL SHOP*************,
Sat 2017.04.01 at 01:06:57 PM EDT
Item: Qty Amount,
-----------
Pretax Total $0.00,
Sales Tax 13% $0.00,
Total Sale $0.00,
*********THANK YOU FOR YOUR ORDER*********,
這是讀取文件
@FXML
private TextArea receipt;
public void ViewReceipt() {
try {
Scanner s = new Scanner(new File("receipt.txt"));
while (s.hasNext()) {
receipt.appendText(s.nextLine()+"\n");
}
} catch (FileNotFoundException ex) {
System.err.println(ex);
}
}
這是它是如何在textarea的代碼
*************SHERIDAN BAGEL SHOP*************,
Sat 2017.04.01 at 01:06:57 PM EDT
Item: Qty Amount,
-----------
Pretax Total $0.00,
Sales Tax 13% $0.00,
Total Sale $0.00,
*********THANK YOU FOR YOUR ORDER*********,
你爲什麼要使用.useDelimiter( 「」);?我會從文件中讀取一行,然後將該行附加到textArea。我不明白爲什麼它不會完全一樣。刪除.useDelimiter並更改appendText(s.next()); appendText(s.nextLine()): – Sedrick
我嘗試過,但它在一行中打印所有內容 –
我相信它是我寫入文件的方式,還有更好的方法嗎? –