
- Java.io - Home
- Java.io - BufferedInputStream
- Java.io - BufferedOutputStream
- Java.io - BufferedReader
- Java.io - BufferedWriter
- Java.io - ByteArrayInputStream
- Java.io - ByteArrayOutputStream
- Java.io - CharArrayReader
- Java.io - CharArrayWriter
- Java.io - Console
- Java.io - DataInputStream
- Java.io - DataOutputStream
- Java.io - File
- Java.io - FileDescriptor
- Java.io - FileInputStream
- Java.io - FileOutputStream
- Java.io - FilePermission
- Java.io - FileReader
- Java.io - FileWriter
- Java.io - FilterInputStream
- Java.io - FilterOutputStream
- Java.io - FilterReader
- Java.io - FilterWriter
- Java.io - InputStream
- Java.io - InputStreamReader
- Java.io - LineNumberInputStream
- Java.io - LineNumberReader
- Java.io - ObjectInputStream
- Java.io - ObjectInputStream.GetField
- Java.io - ObjectOutputStream
- io - ObjectOutputStream.PutField
- Java.io - ObjectStreamClass
- Java.io - ObjectStreamField
- Java.io - OutputStream
- Java.io - OutputStreamWriter
- Java.io - PipedInputStream
- Java.io - PipedOutputStream
- Java.io - PipedReader
- Java.io - PipedWriter
- Java.io - PrintStream
- Java.io - PrintWriter
- Java.io - PushbackInputStream
- Java.io - PushbackReader
- Java.io - RandomAccessFile
- Java.io - Reader
- Java.io - SequenceInputStream
- Java.io - SerializablePermission
- Java.io - StreamTokenizer
- Java.io - StringBufferInputStream
- Java.io - StringReader
- Java.io - StringWriter
- Java.io - Writer
- Java.io package Useful Resources
- Java.io - Discussion
Java - RandomAccessFile close() method
Description
The Java RandomAccessFile close() method closes this random access file stream and releases any system resources associated with the stream. A closed random access file cannot perform input or output operations and cannot be reopened.
close() method −
Closes the file and releases any system resources associated with it.
After calling close(), any further operations on the file (read/write) will throw an IOException.
Declaration
Following is the declaration for java.io.RandomAccessFile.close() method.
public void close()
Parameters
NA
Return Value
This method does not return a value.
Exception
IOException − If an I/O error occurs.
Example - Usage of RandomAccessFile close() method
The following example shows the usage of RandomAccessFile close() method.
RandomAccessFileDemo.java
package com.tutorialspoint; import java.io.IOException; import java.io.RandomAccessFile; public class RandomAccessFileDemo { public static void main(String[] args) { try { // create a new RandomAccessFile with filename test RandomAccessFile raf = new RandomAccessFile("test.txt", "rw"); // write something in the file raf.writeUTF("Hello World"); // set the file pointer at 0 position raf.seek(0); // read and print the contents of the file System.out.println("" + raf.readUTF()); // close the strea and release resources System.out.println("Closing Stream..."); raf.close(); System.out.println("Stream Closed."); } catch (IOException ex) { ex.printStackTrace(); } } }
Output
Assuming we have a text file test.txt in current directory which has the following content. This file will be used as an input for our example program −
ABCDE
Let us compile and run the above program, this will produce the following result −
Hello World Closing Stream... Stream Closed.
Example - Properly closing a RandomAccessFile after writing
The following example shows the usage of RandomAccessFile close() method.
RandomAccessFileDemo.java
package com.tutorialspoint; import java.io.RandomAccessFile; import java.io.IOException; public class RandomAccessFileDemo { public static void main(String[] args) { try { RandomAccessFile raf = new RandomAccessFile("example1.txt", "rw"); raf.writeUTF("Hello, RandomAccessFile!"); System.out.println("Data written to file."); raf.close(); // Closes the file properly System.out.println("File closed successfully."); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
Data written to file. File closed successfully.
Explanation
A file named example1.txt is created (or opened), and data is written.
close() ensures all data is flushed to disk and the file is no longer in use.
Best practice to prevent resource leaks.
Example - Calling methods after close() throws an exception
The following example shows the usage of RandomAccessFile close() method.
RandomAccessFileDemo.java
package com.tutorialspoint; import java.io.RandomAccessFile; import java.io.IOException; public class RandomAccessFileDemo { public static void main(String[] args) { try { RandomAccessFile raf = new RandomAccessFile("example2.txt", "rw"); raf.writeUTF("Testing close behavior"); raf.close(); System.out.println("File closed."); // Attempting to read after closing will throw an IOException raf.seek(0); // This will fail String data = raf.readUTF(); System.out.println("Read after close: " + data); } catch (IOException e) { System.err.println("Exception: " + e.getMessage()); } } }
Output
Let us compile and run the above program, this will produce the following result−
File closed. Exception: Stream Closed
Explanation
The file is closed using raf.close().
Subsequent attempt to seek() or read() on the closed file throws a java.io.IOException: Stream Closed.