看板 java 關於我們 聯絡資訊
※ 引述《proudszl (無聲的喧嘩)》之銘言: : 不好意思 對於這位大大的話有些疑問@@ : 可以請問一下 RandomAccessFile 隨機讀取檔案 : 不是只能直接讀取檔案的嗎 ? : 無法讀取檔案裡面的細部內容吧~ ... 什麼叫只能直接讀取檔案又不能讀取檔案裡面的細部內容 ( ̄□ ̄|||)a 之前的站友都說得很清楚了,例如你的檔案每行會固定有 10 bytes 你要讀取第 100001 行,就是要由 (100001 - 1) * (10 + newline.length) bytes 開始讀 那就用RandomAccessFile 然後 seek( (100001 - 1) * (10 + newline.length) ) 從那邊開始讀進 10 bytes (查看 API) 要再讀第 x 行就再去算一次就好了 如果你的檔案每行都是不同長度... 那要麼你就用傳統方法邊讀邊丟邊數 要麼就在檔案最前面 maintain 一個 resolve table,紀錄每一行的長度 一開始先讀進你要 seek 那行的 position 在哪就好了。 : 還是RandomAccessFile有專門讀取某行功能? : 小弟愚昧 java剛起步 想多了解一下~~ : 麻煩知道的朋友替我解惑一下~ -- 很多人以為 所以我要 其實我是個 我是大學生 告訴大家 三十一歲的怪叔叔 ● ●/ ︿ ︿ /\ < ● ㄨ /\ ㄨ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.103.134.28 ※ 編輯: superlubu 來自: 218.103.134.28 (07/22 22:08)
proudszl:Sorry 小弟第一次用這method...抱歉 07/22 23:33
proudszl:每行都不同長度 但是檔案內容有點多..@@ 1500行左右 07/22 23:39
slalala:1500程式大概3秒內就跑完 07/22 23:59
proudszl:不過每行都不一樣長 要如何得知某行是從第幾個位元開始? 07/23 00:09
proudszl:我笨了 請忽略我上面那行問題 囧 07/23 00:11
slalala:實話是 我沒時做過CVS 不過我認為可以用patterm matcher 07/23 00:49
neverfly:印象中java好像有把excel的csv當資料庫用的API 07/23 01:05
slalala:cvs單純多了 07/23 01:33
TonyQ:nerverfly , 那是 Text Driver , 不是java only . 07/23 03:51
TonyQ:gooogle "text drier connectionstring" 07/23 03:53
superlubu:1500 行就全讀進好了, 不用搞 RandomAccess.... 07/23 09:01
qrtt1:csv != cvs 07/23 09:07
slalala:我打錯啦啦= =是csv 07/23 13:30
slalala:以逗號分隔 真的很單純了 07/23 13:31