2

我有一个问题要问大家。我是追求速度的,我需要经常使用这种方法,所以这种方法效率越高越好。

我的代码:

private void method(final String name) {
    final URL url = new URL("http://www.somewebsite.com/blah.php?name=" + name);
    final BufferedReader in = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
    final String totalText = in.readLine();
    in.close();
    //other stuff using the totalText variable
}

这种方法有效,但我想问是否有有效的方法来工作。

关于我正在阅读的代码的重要说明:

  • 该网站的整个源代码只有一行
  • 网站代码没有HTML标记。都是原始文本。
4

1 回答 1

2

1.如果它是一行代码,因为您已经更改了您的问题,请执行以下操作...仅使用InputStreamScanner

final URL url = new URL("http://www.somewebsite.com/blah.php?name=" + name);
InputStream i = url.openStream();
Scanner scan = new Scanner(i);
final String totalText = scan.nextLine();

2.如果是多行的话,我会建议你不要每次都创建一个String对象,因为在Heap上创建对象是很昂贵的。

下面这2 行将在堆上创建很多 String 对象

((inputLine = in.readLine()) != null)

totalText += inputLine;

使用 StringBuilder哪个是Mutable,最后将其分配给 String 引用 usingtoString()方法。

例如:

StringBuilder totalText;
   String ftotal;

   while ((inputLine = in.readLine()) != null) {
    totalText.append(inputLine);
}


   ftotal = totalText.toString();
于 2012-07-29T18:35:52.293 回答