No, close operation doesn't invoke automatically. For this purposes use try-with-resources
introduced in Java 7:
try (DataInputStream inputStream = new DataInputStream( new FileInputStream("file.data"))) {
int i = inputStream.readInt();
} catch (Exception e) { e.printStackTrace() }
UPD: Explanation: DataInputStream
implements AutoCloseable
interface. That means, that in construction try-with-resources
Java automatically will call close()
method of inputStream
in hidden finally block.