应该FileOutputStream.close();在IOException的catch块中调用?

时间:2017-01-12 19:50:19

标签: java android

我只是想知道我的对象FileOutputStream;应该在catch块中调用out.close();?因为out对象在发生某些事情时仍然是“开放的”。

如果没有,是否应该在catch块中处理FileOutputStream对象的任何其他内容?

  public void saveBitmap(){

    final File myDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), folderName);
    myDir.mkdirs();
    final File file = new File(myDir, getFileName() + getFileExtension());
    FileOutputStream out = null;

    try {

        out = new FileOutputStream(file);
        viewToBitmap().compress(Bitmap.CompressFormat.JPEG, quality, out);

        }

        out.flush();
        out.getFD().sync();
        out.close();

    } catch (IOException e) {

        //should I out.close(); here too?

        e.printStackTrace();
        onBitmapSavedListener(false, null);
    }
  }

1 个答案:

答案 0 :(得分:2)

您应该在finally块中关闭连接。所以你可以确定它会在课程结束时结束。