我已经做了一个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
我尝试过,但它在一行中打印所有内容 –
我相信它是我写入文件的方式,还有更好的方法吗? –