【发布时间】:2016-06-01 12:02:03
【问题描述】:
我必须读取一个 URLConnection 响应,其中包含 2MB 的 Java 中漂亮打印的 JSON。
2mb 不是“小”,但绝不是大。它包含 JSON。然而,它是漂亮的打印 JSON,大约有 60k 行。一个
while ((line = bufferedReader.readLine()) != null) {
lineAllOfIt += line;
}
阅读此回复大约需要 10 分钟。我的方法一定有问题,但我想不出更好的方法。
【问题讨论】:
-
我假设你的意思是 MB,否则你的文件会很小,只有 2 毫比特:P
-
lineAllOfIt += line;是“错误的”,因为字符串是不可变的,并且您会一遍又一遍地创建大小不断增加的新字符串。使用字符串生成器或像stackoverflow.com/a/37079572/995891 那样做 -
你要写答案吗?这是解决方案
-
你想用你的 JSON 做什么?解析它没有?
-
我不认为即使在 StringBuilder 中将 2 Mo 的文件加载到内存中也是一个好主意,除非您只执行一次并且此操作不能并行完成,否则您会填满你的堆
标签: java service get request urlconnection