我正在嘗試在文本文件中寫入一個對象(事務)。 交易對象包含卡號,金額,日期。 我需要在文本文件中寫下如下的對象,並留下一些空白。在文本文件中寫入對象
Card no Amount Date
12335 900.00 29/09/2010
我已經使用ObjectOutputStream在文件中寫入對象。但我無法彌補這種情況下的差距。
如何在交易對象中寫入一些空白的文件,以便它可以與頭部對齊?
任何幫助表示讚賞
我正在嘗試在文本文件中寫入一個對象(事務)。 交易對象包含卡號,金額,日期。 我需要在文本文件中寫下如下的對象,並留下一些空白。在文本文件中寫入對象
Card no Amount Date
12335 900.00 29/09/2010
我已經使用ObjectOutputStream在文件中寫入對象。但我無法彌補這種情況下的差距。
如何在交易對象中寫入一些空白的文件,以便它可以與頭部對齊?
任何幫助表示讚賞
我不知道你的交易對象是什麼樣子。但是這應該提供一些線索。注意System.out.printf()。您可以替換自己的輸出流。我扔在日曆對象,所以您可以得到它的意義上多餘的東西......
private class Transaction {
public int cardno;
public BigDecimal amt;
public Date someDate;
}
public void zz2() {
Transaction t = new Transaction();
t.cardno = 12335;
t.amt = new BigDecimal("900.00");
Calendar cal = GregorianCalendar.getInstance(TimeZone.getTimeZone("GMT"));
cal.set(Calendar.YEAR, 2013);
cal.set(Calendar.MONTH, 9); // zero offset so 9 = Oct
cal.set(Calendar.DATE, 1); // NOT zero offset...
cal.set(Calendar.HOUR_OF_DAY, (15)); // 3PM
cal.set(Calendar.MINUTE, 30);
cal.set(Calendar.SECOND, 44);
cal.set(Calendar.MILLISECOND, 700);
t.someDate = cal.getTime();
DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
String s = df.format(t.someDate);
System.out.println("Card no Amount Date");
System.out.printf ("%6d %12s %10s\n",
t.cardno,
t.amt,
s);
}
也許我失去了一些東西,但你嘗試過使用標籤(一個字符串逃到「\ t 「)在你需要的位置上存在差距?
System.out.println("Card no\tAmount\tDate");
與您輸出值的println語句類似。
你試過的代碼在哪裏? – nhgrif
你不能以這種方式對一個對象進行序列化,你需要將文本所代表的「文本」寫入一個文本文件,也許使用類似'String#format'的東西 – MadProgrammer
反序列化會給你與你序列化的同一個對象。閱讀這篇文章http://stackoverflow.com/questions/11653374/whats-the-difference-between-serialization-and-simply-store-the-object-on-disk –