所以我在我的Java(应该是非常简单的)应用程序上运行一个分析器,并且感到惊讶的是仅次于需要根据时间发出HTTP请求的方法是我的inputStreamToString
方法。目前定义如下:有效的输入流到java中的字符串方法
public static String inputStreamToString(InputStream in) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
in.close();
return sb.toString();
}
我该如何让这个更快? (是的,我确实需要字符串,并且不,InputStrings不是那么大,并且不,这种方法比程序中的大多数方法被调用的次数要少,不,我没有办法避免这种需要)
嗯,这就是所有的I/O发生(我假设探查器包括所有的时间的readLine()需要等待数据进来)。你能做的唯一明显的事情就是用一个足够大的缓冲区预先初始化StringBuilder,这样它就不必重新分配内存,但我认为读取数据所花费的时间会让所有事情都变得很矮小。 – EboMike 2010-11-26 21:15:38