java文件没有读取完时关闭输入流的问题 30

java中当网络文件正常读取完时输入流关闭很快,几乎是0秒,但是当网络文件没有读取完,此时关闭输入流需要很长时间。怎么才能在文件没有读取完立刻就关闭输入流那?求助高手解决... java中当网络文件正常读取完时输入流关闭很快,几乎是0秒,但是当网络文件没有读取完,此时关闭输入流需要很长时间。
怎么才能在文件没有读取完立刻就关闭输入流那?
求助高手解决,谢谢。
展开
 我来答
GirlBleach
2012-12-24
知道答主
回答量:30
采纳率:0%
帮助的人:21.9万
展开全部
inputStream.flush();
刷新一个你的流呗。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
taokai20120421
2012-12-26
知道答主
回答量:35
采纳率:0%
帮助的人:29.9万
展开全部
你能贴出个相对完整的code嘛? 我只能揣测一下,是不是因为流的开闭原则引起的. 先开后关,后开先关原则. 哎!!! 只能等你多贴点代码出来,不然还真是感觉有些无从下手.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd9006
2012-12-23 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
例如,是何如写的。
更多追问追答
追问
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();
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式