[問題] 存儲float比較好的方式

看板java作者 (wade)時間8年前 (2016/06/21 13:13), 8年前編輯推噓3(307)
留言10則, 6人參與, 最新討論串1/1
我有大量的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

06/21 13:18, , 1F
"只"有float資料嗎?直接存binary?
06/21 13:18, 1F

06/21 13:59, , 2F
google "java float array serializable"
06/21 13:59, 2F

06/21 18:06, , 3F
一開始先寫個int代表size不就解決了?
06/21 18:06, 3F

06/21 18:08, , 4F
用queue存 需要時無窮迴圈poll出來就好了
06/21 18:08, 4F

06/21 18:08, , 5F
等到poll丟出null再跳出迴圈 結案
06/21 18:08, 5F
感謝各位的建議 我後來改成float的size放在第一個 width, height放第二、三個 剩下其餘都會是data來幫助去讀取float[] 不過速度還是很慢 還在想其他解決方式 或許序列化存入檔案會是較快的方式 ※ 編輯: dwadefans (219.69.123.238), 06/22/2016 01:27:02

06/22 01:28, , 6F
完全只有float的話 檔案最前面寫個int size 或是直接計算
06/22 01:28, 6F

06/22 01:28, , 7F
檔案大小除一下都可以得知裡面有多少float
06/22 01:28, 7F

06/22 01:29, , 8F
關於速度很慢 你有加Buffered嗎?看文章好像沒提到
06/22 01:29, 8F

06/22 01:33, , 9F
硬碟IO時沒有Buffered的速度差很多
06/22 01:33, 9F
您好 我沒有加Buffered 我再試試看!! ※ 編輯: dwadefans (219.69.123.238), 06/22/2016 10:13:46

06/22 10:19, , 10F
試試 java nio FileChannel + MappedByteBuffer
06/22 10:19, 10F
文章代碼(AID): #1NQCq4Jq (java)