看板 java 關於我們 聯絡資訊
我有大量的float[]資料 我使用FileOutputStream搭配DataInputStream存入檔案 參考:http://www.tutorialspoint.com/java/io/dataoutputstream_writefloat.htm 但是要將file內的float[]拿出來的時候 使用以上的方法會是一個一個取出而且沒辦法知道丟入時float的大小 不知道有沒有比較好的方式可以做到快速存儲呢? 因為我的實作上必須即時比對多個檔案 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.69.123.238 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1466486020.A.4F4.html
james732: "只"有float資料嗎?直接存binary? 06/21 13:18
pico2k: google "java float array serializable" 06/21 13:59
popcorny: 一開始先寫個int代表size不就解決了? 06/21 18:06
cowbaying: 用queue存 需要時無窮迴圈poll出來就好了 06/21 18:08
cowbaying: 等到poll丟出null再跳出迴圈 結案 06/21 18:08
感謝各位的建議 我後來改成float的size放在第一個 width, height放第二、三個 剩下其餘都會是data來幫助去讀取float[] 不過速度還是很慢 還在想其他解決方式 或許序列化存入檔案會是較快的方式 ※ 編輯: dwadefans (219.69.123.238), 06/22/2016 01:27:02
kyleJ: 完全只有float的話 檔案最前面寫個int size 或是直接計算 06/22 01:28
kyleJ: 檔案大小除一下都可以得知裡面有多少float 06/22 01:28
kyleJ: 關於速度很慢 你有加Buffered嗎?看文章好像沒提到 06/22 01:29
kyleJ: 硬碟IO時沒有Buffered的速度差很多 06/22 01:33
您好 我沒有加Buffered 我再試試看!! ※ 編輯: dwadefans (219.69.123.238), 06/22/2016 10:13:46
csieflyman: 試試 java nio FileChannel + MappedByteBuffer 06/22 10:19