[問題] 讀txt文字檔
想請問一下,如果我要讀一個內容大概有10mb的文字檔,
有什麼比較快的方法嗎?
因為我用
newContent=BufferedReader.readline()
oldContent+=newContent
這種方式一行一行讀,感覺非常的慢,已經等半小時了還沒跑完
請問有什麼比較聰明且快的方法嗎?謝謝了...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.92.204
推
05/28 22:39, , 1F
05/28 22:39, 1F
這個程式是把txt檔先全部讀出來,再根據我設定的符號去做split
存成文字陣列,再把文字陣列寫到excel裡面
所以我把內容全部累加起來.....請問是否有比較好的方法呢? 謝拉
※ 編輯: sioo 來自: 59.104.92.204 (05/28 22:43)
推
05/28 22:46, , 2F
05/28 22:46, 2F
→
05/28 22:47, , 3F
05/28 22:47, 3F
推
05/28 22:57, , 4F
05/28 22:57, 4F
→
05/28 23:00, , 5F
05/28 23:00, 5F
推
05/28 23:11, , 6F
05/28 23:11, 6F
虛功???
好吧,剛寫了個System.out這東西來看程式跑的狀況,
大概一秒鐘跑10行左右吧,txt檔的資料預估50000行以上,
光是把txt檔讀出來就要可能要跑一個半鐘頭....
好慢....
※ 編輯: sioo 來自: 59.104.92.204 (05/28 23:19)
推
05/28 23:32, , 7F
05/28 23:32, 7F
→
05/28 23:50, , 8F
05/28 23:50, 8F
好像也沒什麼演算法
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)
推
05/29 00:23, , 9F
05/29 00:23, 9F
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)
討論串 (同標題文章)
java 近期熱門文章
3
14
PTT數位生活區 即時熱門文章