我想读取远程位置上的xml文件。我使用以下代码
URL url = new URL(myurl);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String inputLine;
String strOutput = "";
System.out.println("start now");
//my code hangs after priting start now
while ((inputLine = in.readLine()) != null) {
strOutput = strOutput + inputLine;
}
//contol doesnot reach here sometimes
in.close();
这是读取远程文件的好方法。什么是网络慢?请建议
答案 0 :(得分:2)
评论已经表明存在一些不良做法。我将尝试列出可能导致性能不佳的原因:
readLine()
。您假设XML文件包含多行,每行以\r\n
,\r
或\n
结尾。不一定是这种情况,导致readLine()
需要很长时间才能完成的情况。String
个对象。字符串在Java中是不可变的。连接字符串将创建一个新的String对象,如果结果字符串的大小非常大,这可能会变得昂贵。如果您的文档范围从几个字节到千字节,这可能不是问题,但如果它运行到兆字节,您就会遇到麻烦。请改用StringBuilder
或StringBuffer
。readLine()
上访问网络。答案 1 :(得分:0)
为什么不考虑使用JAXB或其他经过优化的读取XML文件的XML读取器。