无法将String转换为InputStream以解析XML

时间:2017-08-02 20:41:27

标签: java android xml

我正在尝试从服务器解析XML代码以在Android中使用。 URL工作正常,直到SB我得到了XML。将String转换为InputStream时,我在logcat中得到这个:java.io.ByteArrayInputStream@9e7122d 任何帮助? 谢谢!

private InputStream downloadUrl(String urlString) throws IOException {
BufferedReader reader = null;

try {
    URL url = new URL(urlString);
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    con.setConnectTimeout(60000);
    con.setReadTimeout(60000);
    StringBuilder sb = new StringBuilder();
    reader = new BufferedReader(new InputStreamReader(con.getInputStream()));

    String line;
    while ((line = reader.readLine()) != null) {
        sb.append(line + "\n");
    }

    InputStream stream = IOUtils.toInputStream(sb, "UTF-8");
    Log.d(TAG, "SB " + sb);
    Log.d(TAG, "STREAM" + stream);
    return stream;
} catch (Exception e) {
    e.printStackTrace();
    return null;
} finally {
    if (reader != null) {
        try {
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
}

}

1 个答案:

答案 0 :(得分:0)

这里没有问题需要解决。 \t就是ByteArrayInputStream@9e7122d返回的内容。

但你为什么要这样做?将整个URL加载到内存中会增加延迟并浪费空间,并且不会超出特定大小。没有任何好处。只需返回ByteArrayInputStream.toString()