Topic: BufferedReader的问题

  Print this page

1.BufferedReader的问题 Copy to clipboard
Posted by: orangeyxj
Posted on: 2005-04-13 17:13

用BufferedReader来读txt文件好象速度不行啊,读一个2M不到的文本文件要花一分钟多(P4 1.8,380M内存),有没有什么办法提高一下性能啊?

2.Re:BufferedReader的问题 [Re: orangeyxj] Copy to clipboard
Posted by: simbas
Posted on: 2005-04-13 18:33

那要看你用它怎么读了

3.Re:BufferedReader的问题 [Re: orangeyxj] Copy to clipboard
Posted by: orangeyxj
Posted on: 2005-04-14 00:25

那该怎么读呢?
我只知道
FileReader reader=new FileReader("Select.txt");
BufferedReader br=new BufferedReader(reader);
while(br.readey()){
String s=br.readLine();
......
}
怎么样才能提高性能呢?能举个例子吗?用cache吗?

4.Re:BufferedReader的问题 [Re: orangeyxj] Copy to clipboard
Posted by: VirusCamp
Posted on: 2005-04-14 13:00

String s=br.readLine();
问题在这,新建了太多String.

不晓得你要干吗,可以用StringBuffer吗?

5.Re:BufferedReader的问题 [Re: orangeyxj] Copy to clipboard
Posted by: miaomiao9527
Posted on: 2005-04-14 15:38

FileReader reader=new FileReader("Select.txt");
BufferedReader br=new BufferedReader(reader);
这里 感觉不对while(br.readey()){
String s=br.readLine();
......
}

我认为是
int s = readLine();
while(s != -1){
........
}

6.Re:BufferedReader的问题 [Re: orangeyxj] Copy to clipboard
Posted by: orangeyxj
Posted on: 2005-04-15 17:45

先谢谢各位了,我是想在一个TextArea里显示一个txt文件的内容,
String 改用StringBuffer我知道为什么可以提高速度,
但是用
int s=readLine();
while(s!=-1){
.....
}
能提高性能的原因是什么呢?是避免建立了太多的String吗?
另外,TextArea里的setText( )或是append( )只接受String,那岂不是最后还是要建立同样的String数量?
谢谢

7.Re:BufferedReader的问题 [Re: orangeyxj] Copy to clipboard
Posted by: tbanhui
Posted on: 2005-04-18 11:15

你那段代码的运行效率应该很低。

涉及到内存管理的东西,可以学习一下C++的一些东西,会有帮助的。

8.Re:BufferedReader的问题 [Re: orangeyxj] Copy to clipboard
Posted by: miaomiao9527
Posted on: 2005-04-24 20:52

我认为 Buffered是一个缓冲池只有当他满时才会把你要传的数据发送过去,或者有命令清空他
FileReader reader=new FileReader("Select.txt");
BufferedReader br=new BufferedReader(reader);
while(br.readey()){
String s=br.readLine();
......
}
你的代码中没有两种方式的人以一种,Buffered在一直等待池满或发出命令。我觉得和String 没关系
int s=readLine();
while(s!=-1){
.....
}


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923