我试图从以下网址下载一个JSON本地文件 - http://api.crunchbase.com/v/1/companies.js - 到本地文件。我使用Java 1.7和以下JSON库 - http://www.json.org/java/ - 试图使其工作。下载大JSON文件使用Java
这里是我的代码:
public static void download(String address, String localFileName) {
OutputStream out = null;
URLConnection conn = null;
InputStream in = null;
try {
URL url = new URL(address);
out = new BufferedOutputStream(
new FileOutputStream(localFileName));
conn = url.openConnection();
in = conn.getInputStream();
byte[] buffer = new byte[1024];
int numRead;
long numWritten = 0;
while ((numRead = in.read(buffer)) != -1)
{
out.write(buffer, 0, numRead);
numWritten += numRead;
System.out.println(buffer.length);
System.out.println(" " + buffer.hashCode());
}
System.out.println(localFileName + "\t" + numWritten);
} catch (Exception exception) {
exception.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
} catch (IOException ioe) {
}
}
}
当我运行代码的一切似乎直到中途循环程序似乎停止,而不是继续阅读JSON对象的工作。
有谁知道为什么会停止阅读?我该如何解决这个问题?
解释你的意思是“似乎停止”。究竟发生了什么? – 2012-03-19 23:24:16
我在代码中看不到任何明显的错误,只是运行它。它工作正常..大约40秒后,整个文件被复制。 – Vossi 2012-03-19 23:30:42
当我打印出输入流,因为它涉及它其通常中途停止通过... 这里是流的局部输出.... {“名称”:“调制解调器介质”, “永久“:”modemmedia“}, {”name“:”Digitas“, ”permalink“:”digitas“}, {”name“:”Webshots“, ”permalink“:”webshots“}, { name“:”LimeLife“, ”permalink“:”limelife“}, {”name“:”Advertising.com“, ”permalink“:”advertising-com“}, {”name“:”CTS Media “,<----结束并且程序没有完成。 – user1279675 2012-03-19 23:40:19