谁能解释为什么会这样?文件大小最多为2MB.执行代码所需的时间不到2秒.
try {
while ((line = br.readLine()) != null) {
System.out.println(line);
}
catch(Exception e)
{
}
Run Code Online (Sandbox Code Playgroud)
但是当我将代码更改为:
String temp = "";
try {
while ((line = br.readLine()) != null) {
temp =temp + line;
}
catch(Exception e)
{
}
Run Code Online (Sandbox Code Playgroud)
我知道这需要相对更多的时间,但需要470秒的大量时间.为何如此区别?
Run Code Online (Sandbox Code Playgroud)temp =temp + line;
是串联的串联.连接需要创建一个新的字符串对象,并且可能需要实习,这需要花费很多时间.相反,考虑在大多数情况下使用StringBuilder或在需要同步的情况下使用StringBuffer.
用它创建一次
StringBuilder sb=new StringBuilder()
Run Code Online (Sandbox Code Playgroud)
并追加:
sb.append(line);
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用获取数据sb.toString().
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |