java 板


LINE

想請問一下,如果我要讀一個內容大概有10mb的文字檔, 有什麼比較快的方法嗎? 因為我用 newContent=BufferedReader.readline() oldContent+=newContent 這種方式一行一行讀,感覺非常的慢,已經等半小時了還沒跑完 請問有什麼比較聰明且快的方法嗎?謝謝了... --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.92.204
1F:推 qrtt1:你有什麼理由需要全部累加!? 05/28 22:39
這個程式是把txt檔先全部讀出來,再根據我設定的符號去做split 存成文字陣列,再把文字陣列寫到excel裡面 所以我把內容全部累加起來.....請問是否有比較好的方法呢? 謝拉 ※ 編輯: sioo 來自: 59.104.92.204 (05/28 22:43)
2F:推 qrtt1:如果你的split不會跨多行怎麼不單行的做呢? 它會跨多行嗎? 05/28 22:46
3F:→ sioo:對阿,會跨到多行耶,沒辦法預測會有幾行 05/28 22:47
4F:推 Jichang:我猜應該是有寫錯.弄成無限回圈.否則 10mb 應該是很快. 05/28 22:57
5F:→ sioo:資料量比較少時,程式是跑得完的,所以應該不是無窮loop阿 05/28 23:00
6F:推 MOONRAKER:那表示你程式裡有很多「虛功」。 05/28 23:11
虛功??? 好吧,剛寫了個System.out這東西來看程式跑的狀況, 大概一秒鐘跑10行左右吧,txt檔的資料預估50000行以上, 光是把txt檔讀出來就要可能要跑一個半鐘頭.... 好慢.... ※ 編輯: sioo 來自: 59.104.92.204 (05/28 23:19)
7F:推 qrtt1:一秒10行太可怕了, 你一行是很長嗎? 貼上你的演算法吧!!! 05/28 23:32
8F:→ iensue:你的newContent是String嗎? 試試用StringBuilder 05/28 23:50
好像也沒什麼演算法 File file=new File("data.txt"); BufferedReader reader=new BufferedReader(new FileReader(file)); String oldContent=""; String newContent=""; while((newContent=reader.readLine())!=null) { //System.out.println("印出讀到第幾行"); oldContent+=newContent; } 資料的話是長得這樣: http://mis.ccu.edu.tw/~dink/data.txt p.s.不建議用瀏覽器直接開,可能會太大讓瀏覽器呈現當掉的情況,下載下來可能會好一點 ※ 編輯: sioo 來自: 59.104.92.204 (05/29 00:10) ※ 編輯: sioo 來自: 59.104.92.204 (05/29 00:16)
9F:推 qrtt1:最重要的 split 沒寫, 問題不在讀檔, 根本就不應該這麼做 05/29 00:23
String[] array=oldContent.split("@@@"); //Excel裡面的x,y座標 int x=0,y=1; for(int i=0;i<array.length;i++) { if(array[i].equals("*****")) { //*****表示一筆資料結束,就換行,column從第0個開始 y++; x=0; } else { //將array[i]的內容寫到Excel中的(x,y)中,並換到下一個column sheet.addCell(new Label(x,y,array[i])); x++; } } ※ 編輯: sioo 來自: 59.104.92.204 (05/29 00:29) ※ 編輯: sioo 來自: 59.104.92.204 (05/29 00:35)







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP