我有一個BitSet並想將其寫入文件 - 我遇到了使用writeObject方法使用ObjectOutputStream的解決方案。將BitSet寫入java中的文件
我Java API中看了看ObjectOutputStream的,看到你可以寫其他的東西(一個字節,是int,short等)
我試圖檢查出類,所以我想一個字節寫入文件使用下面的代碼,但結果給我一個7字節而不是1字節的文件
我的問題是文件中的前6個字節是什麼?他們爲什麼在那裏?
我的問題與BitSet有關,因爲我不想開始將大量數據寫入文件,並意識到我在文件中插入了隨機字節而不知道它們是什麼。
這裏是代碼:
byte[] bt = new byte[]{'A'};
File outFile = new File("testOut.txt");
FileOutputStream fos = new FileOutputStream(outFile);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.write(bt);
oos.close();
感謝您的幫助
阿夫納
所以如果我正確理解你的話 - 每次我用ObjectOutputStream寫東西時,我都會爲每次寫入產生嚴重的開銷。 例如,如果我寫一個int,一個短,一個字節,然後一個字符串 我得到4組額外的數據,我寫的每個項目? – Avner 2009-09-04 09:50:29
不可以。只有writeObject()方法添加類型標題。 writeUTF()方法添加一個2字節的長度前綴。原始的writeXX()方法不會增加任何開銷。有關詳細信息,請閱讀API文檔。 – 2009-09-04 10:03:45
另請注意,類型信息是每個對象。對於基本上由基本數組組成的對象(比如BitSet),無論數組多大,開銷都是恆定的。 – 2009-09-04 10:06:31