Java中如何判断一个IO流是否已经关闭,能否改写成长尾?

2026-04-02 01:251阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计243个文字,预计阅读时间需要1分钟。

Java中如何判断一个IO流是否已经关闭,能否改写成长尾?

我想测试一个Anroid是否支持自动关闭流的功能,但JDK并没有提供判断流是否关闭的接口,只能通过抛出异常来检测。想找一个简单的方法,捕获异常,整体代码如下:

Java中如何判断一个IO流是否已经关闭,能否改写成长尾?

javaFileInputStream fis=null;try { fis=new FileInputStream(example.txt); // 读取数据...} catch (IOException e) { // 捕获异常} finally { if (fis !=null) { try { fis.close(); } catch (IOException e) { // 异常处理 } }}

我想测试一下anroid是否支持自动关闭流的功能,怎奈jdk并没有提供判断流是否关闭的接口,只能剑走偏锋,想了一个矬逼的办法,抓异常,具体代码如下。FileInputS

我想测试一下anroid是否支持自动关闭流的功能,怎奈jdk并没有提供判断流是否关闭的接口,只能剑走偏锋,想了一个矬逼的办法,抓异常,具体代码如下。

FileInputStream fi2 = null; try (FileInputStream fi = new FileInputStream(pngFilePath)) { fi2 = fi; } catch (IOException e) { e.printStackTrace(); } finally { try { fi2.read(); } catch (IOException e) { e.printStackTrace(); //如果流已经关闭,这里会报 } } FileOutputStream fo2 = null; try (FileOutputStream fo = new FileOutputStream(pngFilePath)) { fo2 = fo; } catch (IOException e) { e.printStackTrace(); } finally { try { fo2.write(new byte[] {1, 2, 3}); } catch (IOException e) { e.printStackTrace(); //如果流已经关闭,这里会报 } }

本文共计243个文字,预计阅读时间需要1分钟。

Java中如何判断一个IO流是否已经关闭,能否改写成长尾?

我想测试一个Anroid是否支持自动关闭流的功能,但JDK并没有提供判断流是否关闭的接口,只能通过抛出异常来检测。想找一个简单的方法,捕获异常,整体代码如下:

Java中如何判断一个IO流是否已经关闭,能否改写成长尾?

javaFileInputStream fis=null;try { fis=new FileInputStream(example.txt); // 读取数据...} catch (IOException e) { // 捕获异常} finally { if (fis !=null) { try { fis.close(); } catch (IOException e) { // 异常处理 } }}

我想测试一下anroid是否支持自动关闭流的功能,怎奈jdk并没有提供判断流是否关闭的接口,只能剑走偏锋,想了一个矬逼的办法,抓异常,具体代码如下。FileInputS

我想测试一下anroid是否支持自动关闭流的功能,怎奈jdk并没有提供判断流是否关闭的接口,只能剑走偏锋,想了一个矬逼的办法,抓异常,具体代码如下。

FileInputStream fi2 = null; try (FileInputStream fi = new FileInputStream(pngFilePath)) { fi2 = fi; } catch (IOException e) { e.printStackTrace(); } finally { try { fi2.read(); } catch (IOException e) { e.printStackTrace(); //如果流已经关闭,这里会报 } } FileOutputStream fo2 = null; try (FileOutputStream fo = new FileOutputStream(pngFilePath)) { fo2 = fo; } catch (IOException e) { e.printStackTrace(); } finally { try { fo2.write(new byte[] {1, 2, 3}); } catch (IOException e) { e.printStackTrace(); //如果流已经关闭,这里会报 } }