java文件没有读取完时关闭输入流的问题 30
java中当网络文件正常读取完时输入流关闭很快,几乎是0秒,但是当网络文件没有读取完,此时关闭输入流需要很长时间。怎么才能在文件没有读取完立刻就关闭输入流那?求助高手解决...
java中当网络文件正常读取完时输入流关闭很快,几乎是0秒,但是当网络文件没有读取完,此时关闭输入流需要很长时间。
怎么才能在文件没有读取完立刻就关闭输入流那?
求助高手解决,谢谢。 展开
怎么才能在文件没有读取完立刻就关闭输入流那?
求助高手解决,谢谢。 展开
展开全部
inputStream.flush();
刷新一个你的流呗。。。
刷新一个你的流呗。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你能贴出个相对完整的code嘛? 我只能揣测一下,是不是因为流的开闭原则引起的. 先开后关,后开先关原则. 哎!!! 只能等你多贴点代码出来,不然还真是感觉有些无从下手.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
例如,是何如写的。
更多追问追答
追问
while (!mProcessDialog.isCanceled()
&& (readSize = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, readSize);
downloadedSize += readSize;// 时时获取下载到的大小
mProcessDialog.updateProgressBar(downloadedSize);
}
inputStream.close();//******
outputStream.close();
就在这里,当文件读取完输入流关闭需要0秒,当文件未读取完,退出循环,关闭输入流,需要很长时间。
追答
应该这样理解,in流正在处理整个块,而中间被停止还不能立即停止。
while ((readSize = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, readSize);
downloadedSize += readSize;// 时时获取下载到的大小
mProcessDialog.updateProgressBar(downloadedSize);
if( mProcessDialog.isCanceled() ){
break;
}
}
inputStream.close();//******
outputStream.close();
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询