Waz*_*_Be 16 java android inputstream
我目前正在使用InpuStream从我的服务器获取JSON响应.
我需要做两件事:
在逐个使用这两种方法时,这完全没有问题.
使用GSON进行解析:
Gson gson = new Gson();
Reader reader = new InputStreamReader (myInputStream);
Result result = gson.FrmJson(reader, Result.class)
Run Code Online (Sandbox Code Playgroud)
并将复制到SDCard
FileOutputStream f (...) f.write (buffer)
Run Code Online (Sandbox Code Playgroud)
它们都经过了测试.
问题是一旦解析完成,我想写入SDCard并且它会中断.我知道我的InputStream已关闭,这就是问题所在.
这里有一些接近我的问题:如何缓存InputStream以供多次使用
有没有办法改进该解决方案并提供我们可以使用的东西?
aio*_*obe 29
我可能会将输入流排入byte[]使用中ByteArrayOutputStream,然后ByteArrayInputStream在每次需要重新读取流时根据结果创建一个新的.
像这样的东西:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int n = 0;
while ((n = myInputStream.read(buf)) >= 0)
baos.write(buf, 0, n);
byte[] content = baos.toByteArray();
InputStream is1 = new ByteArrayInputStream(content);
... use is1 ...
InputStream is2 = new ByteArrayInputStream(content);
... use is2 ...
Run Code Online (Sandbox Code Playgroud)
相关且可能有用的问题和答案:
| 归档时间: |
|
| 查看次数: |
20446 次 |
| 最近记录: |