0
            URL url = new URL(urlStr);
            URLConnection conn = url.openConnection();
            // Get the response
            BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()),1024*32);

            StringBuffer sb = new StringBuffer();

            String line;
            while ((line = rd.readLine()) != null) {
                sb.append(line.replace("  ", ""));
            }
            rd.close();
            result = sb.toString();

我怀疑这是创建了太多字符串的事实。我如何查看是否可以使用 readline 并将 lineread 直接插入 stringbuilder。还有什么其他方法可以做到这一点?该文件不到 1MB

这是日志:

09-27 12:56:07.740:错误/错误:LDataListView 中的问题:refreshError 09-27 12:56:07.740:错误/错误:-------- ------------------------ 09-27 12:56:13.339: 错误/Dhcpcd(10598): 发送带有 xid 0x5a93b3de 的 DHCP_REQUEST,下一个在 3.58 秒内09-27 12:56:13.549:错误/dalvikvm-heap(12862):6064234 字节分配内存不足。09-27 12:56:13.549:错误/dalvikvm(12862):内存不足:堆大小=15687KB,分配=6704KB,位图大小=8617KB 09-27 12:56:13.559:错误/AndroidRuntime(12862):致命例外:主要 09-27 12:56:13.559:错误/AndroidRuntime(12862):java.lang.OutOfMemoryError 09-27 12:56:13.559:错误/AndroidRuntime(12862):在 java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder .java:97) 09-27 12:56:13.559: 错误/AndroidRuntime(12862): 在 java.lang.AbstractStringBuilder.append0(AbstractStringBuilder. 错误/AndroidRuntime(12862): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 09-27 12:56:13.559: 错误/AndroidRuntime(12862): 在 dalvik.system.NativeStart.main (本机方法)09-27 12:56:14.819:错误/ActivityManager(101):设置顶部应用程序更改失败!09-27 12:56:48.499: 错误/BluetoothHeadsetService(201): java.util.NoSuchElementException

编辑:::

更多信息:

它是一个 JSON 字符串。基本上是带有一组项目的单个对象。整个提要中到处都是编码图像,这使得它比应有的大得多(不幸的是,这不是我的提要)。iphone 似乎可以读取它,但我的 HTC 手机有时会读取它,但通常会在 sb 附加行上遇到内存异常。

我也尝试过直接阅读它,例如:

            URL url = new URL(urlStr);
            URLConnection conn = url.openConnection();
            InputStream iFile = conn.getInputStream();

            result = inputStreamToString(iFile);

但也有同样的问题。

4

0 回答 0