【发布时间】:2015-01-01 14:26:30
【问题描述】:
我已经得到了 HttpURLConnection inputStream:
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("GET");
conn.setDoInput(true);
// Starts the query
conn.connect();
InputStream stream = conn.getInputStream();
现在我要生成这个inputStream的两个副本,一个用于存储到文件,另一个用于解析,但是我存储后,inputStream无法解析:
BufferedInputStream bis = new BufferedInputStream(inStream);
try {
byte[] buffer = new byte[1024];
if (inStream.markSupported()) {
inStream.mark(1);
}
int bytesRead = 0;
while ((bytesRead = bis.read(buffer)) != -1) {
Log.d(TAG, "buffer: "+new String(buffer));
outStream.write(buffer, 0, bytesRead);
}
outStream.flush();
inStream.reset();
outStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
现在如何再次完全获取这个 inputStream?
【问题讨论】:
-
再做同样的事情
-
@RC。看来Android不支持CloseShieldInputStream
-
@PankajKumar Android 好像不支持 CloseShieldInputStream?
-
这可能对你有帮助,How to clone an Input Stream!