如何阅读含有~300 MB json文本的url

ttygqcqt  于 2023-02-14  发布在  其他
关注(0)|答案(1)|浏览(98)

我正在尝试读取https://mtgjson.com/api/v5/AllPrintings.json中的文本。我尝试使用以下代码:

url = new URL("https://mtgjson.com/api/v5/AllPrintings.json");
conn = (HttpsURLConnection) url.openConnection();

BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); // error here

String inputLine;
StringBuffer content = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    content.append(inputLine);
}
System.out.println(content);

BufferedReader总是出现IOException异常,URL中的文本不包含换行符,如何读取这些数据?

z0qdvdin

z0qdvdin1#

复制时不需要使用BufferedReader的byte-〉character转换,而是使用Java NIO Files.copy将内容直接复制到一个文件中,然后使用输出文件进行任何进一步的处理:

Path file = Path.of("big.json");
Files.copy(conn.getInputStream(), file);
System.out.println("Saved "+Files.size(file)+" bytes to "+file);

应打印:

Saved 313144388 bytes to big.json

相关问题