gpt4 book ai didi

java - 写入文件时出现 IOException(Stream 已关闭)

转载 作者:行者123 更新时间:2023-11-29 06:12:35 25 4
gpt4 key购买 nike

为了向 Android 应用程序添加某种缓存,我尝试编写从 myUrl.openConnection().getInputStream() 获取的 InputStream , 到一个文件。

这是我写的方法:

public static void saveInputStream(InputStream inputStream) throws IOException, Exception {
FileOutputStream out = null;
OutputStream os = null;

try {
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "feedData.txt";
File myFile = new File(baseDir + File.separator + fileName);

out = new FileOutputStream(myFile, false);
os = new BufferedOutputStream(out);

byte[] buffer = new byte[65536];
int byteRead = 0;

while ((byteRead = inputStream.read(buffer)) != -1) {
Log.d("CacheManager", "Reading.......");
os.write(buffer, 0, byteRead);
}
} catch(IOException e) {
e.printStackTrace();
throw new IOException();
} catch(Exception e) {
throw new Exception();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
throw new IOException();
}
}
}
}

调用部分如下所示:

URL feedUrl = new URL("rss_feed_url");
InputStream inputStream = feedUrl.openConnection().getInputSream();
CacheManager.saveInputSteam(inputStream);

我收到以下异常:

(23704): Pas de Notification
W/System.err(24015): java.io.IOException: Stream is closed

这是什么,那是关闭的?

有什么想法吗?

谢谢!

最佳答案

看起来服务器已将数据作为压缩流发送。打开流的行和您的缓存管理器之间没有任何代码吗?

我猜你有一些其他代码行正在读取该流,这就是为什么当你到达缓存管理器时它被关闭的原因。

关于java - 写入文件时出现 IOException(Stream 已关闭),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6279173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com