Inspectopedia Help

I/O resource opened but not safely closed

Reports I/O resources that are not safely closed. I/O resources checked by this inspection include java.io.InputStream, java.io.OutputStream, java.io.Reader, java.io.Writer, java.util.zip.ZipFile, java.io.Closeable and java.io.RandomAccessFile.

I/O resources wrapped by other I/O resources are not reported, as the wrapped resource will be closed by the wrapping resource.

By default, the inspection assumes that the resources can be closed by any method with 'close' or 'cleanup' in its name.

Example:

void save() throws IOException { FileWriter writer = new FileWriter("filename.txt"); //warning writer.write("sample"); }

Use the following options to configure the inspection:

  • List I/O resource classes that do not need to be closed and should be ignored by this inspection.

  • Whether an I/O resource is allowed to be opened inside a tryblock. This style is less desirable because it is more verbose than opening a resource in front of a try block.

  • Whether the resource can be closed by any method call with the resource passed as argument.

Inspection options

Option

Type

Default

Ignored I/O resource types

StringList

[java.io.ByteArrayOutputStream, java.io.ByteArrayInputStream, java.io.StringBufferInputStream, java.io.CharArrayWriter, java.io.CharArrayReader, java.io.StringWriter, java.io.StringReader]

Allow resource to be opened inside a 'try' block

Checkbox

false

Any method may close resource argument

Checkbox

true

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023