当前位置: 首页 > 面试题库 >

在Java中关闭输入流

慕宪
2023-03-14
问题内容

我在try / catch块中有以下代码

 InputStream inputstream = conn.getInputStream();
 InputStreamReader inputstreamreader = new  InputStreamReader(inputstream);
 BufferedReader bufferedreader = new BufferedReader(inputstreamreader);

我的问题是,当我必须在finally块中关闭这些流时,是否必须关闭所有3个流,或者仅关闭 befferedreader 会关闭所有其他流?


问题答案:

按照惯例,包装流(用于包装现有流)在关闭时会关闭基础流,因此仅bufferedreader示例中必须关闭。而且,关闭已经关闭的流通常是无害的,因此关闭所有3个流都不会受到伤害。



 类似资料:
  • 编辑问题以包括所需的行为、特定的问题或错误,以及重现问题所需的最短代码。这将帮助其他人回答这个问题。 我正在做一个待办事项列表程序。 我想让用户可以输入日期、时间和关于。我已经有日期了。我缺少的是时间。 但我有很多例外。我有什么遗漏吗?

  • 我想做的是:打开大文件的InputStream,读取10MB的块,上传一个块,读取下一个块。 我为这个任务编写了很好的代码,但问题是ContentResolver返回ParcelFileDescriptor。AutoCloseInputStream作为InputStriam。这个实现打破了InputStream的契约,因为它在first.read()之后自动关闭,所以当我尝试读取下一个块时,我得到

  • 我正在尝试创建一个输入来验证输入是整数,并且它是正的。现在我有这个。我应该如何检查整数是否为正 编辑:我还需要它一直询问,直到你输入一个正整数

  • 问题内容: Java中的InputStreams和OutputStreams是否在销毁时关闭()?我完全理解这可能是错误的形式(尤其是在C和C ++世界中),但是我很好奇。 另外,假设我有以下代码: 无名的FileInputStream是否在p.load()之后超出范围,并因此被破坏,就像C ++范围规则一样?我尝试在Google上搜索Java的匿名变量范围,但这并没有达到我的预期。 谢谢。 问题

  • 我有一个课堂作业,用扫描器读取数据。 底部的部分只是为了测试我是否所有的信号都正常运行。但是,我安装的while循环似乎不想继续运行多次。它将接受一个值,然后如果我说是,我有更多的值(y或y),它将退出并打印任何一个胸部

  • 问题内容: 我的网站在iPhone / Safari浏览器上的呈现效果很好,但有一个例外:我的文本输入字段具有一种怪异的圆形样式,与我的网站的其余部分完全不一样。 有没有一种方法可以指示Safari(通过CSS或元数据)不对输入字段进行舍入并按预期将其呈现为矩形? 问题答案: 在iOS 5及更高版本上,出色的技巧可以解决问题: 如果必须仅在iOS上删除圆角,否则由于某些原因不能在跨平台标准化圆角,