我有一个问题要问你们。我想要速度,我需要经常使用这种方法,所以这种方法效率越高越好。
我的代码:
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
}
此方法有效,但我问是否有更多有效的方式来实现此目的。
重要说明关于我正在阅读的代码:
答案 0 :(得分:2)
1。如果一行代码,因为您已更改了问题,请执行以下操作...
仅使用InputStream
和Scanner
。
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对象,因为在堆上创建对象很贵。 /强>
这些 2以下行将在堆上创建大量String对象。
((inputLine = in.readLine()) != null)
totalText += inputLine;
使用 StringBuilder
Mutable ,最后使用toString()
方法将其分配给String引用。
<强>例如强>
StringBuilder totalText;
String ftotal;
while ((inputLine = in.readLine()) != null) {
totalText.append(inputLine);
}
ftotal = totalText.toString();