
- 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 readChar() method
Description
The Java RandomAccessFile readChar() method reads a character from this file. This method reads two bytes from the file, starting at the current file pointer.
Declaration
Following is the declaration for java.io.RandomAccessFile.readChar() method.
public final char readChar()
Parameters
NA
Return Value
This method returns the next two bytes of this file, interpreted as a char.
Exception
IOException − If an I/O error occurs.
EOFException − If this file reaches the end before reading two bytes.
Example - Usage of RandomAccessFile readChar() method
The following example shows the usage of RandomAccessFile readChar() method.
RandomAccessFileDemo.java
package com.tutorialspoint; import java.io.RandomAccessFile; import java.io.IOException; public class RandomAccessFileDemo { public static void main(String[] args) { try { char c = 'H'; // create a new RandomAccessFile with filename test RandomAccessFile raf = new RandomAccessFile("test.txt", "rw"); // write something in the file raf.writeChar('C'); // set the file pointer at 0 position raf.seek(0); // read char System.out.println(raf.readChar()); // set the file pointer at 0 position raf.seek(0); // write a char at the start raf.writeChar(c); // set the file pointer at 0 position raf.seek(0); // read char System.out.println(raf.readChar()); } 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 −
C H
Example - Writing and Reading Characters
The following example shows the usage of RandomAccessFile readChar() 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("chars.dat", "rw"); // Write characters to the file (2 bytes each) raf.writeChar('X'); raf.writeChar('Y'); // Move file pointer back to the start raf.seek(0); // Read and print characters char c1 = raf.readChar(); char c2 = raf.readChar(); System.out.println("First char: " + c1); // X System.out.println("Second char: " + c2); // Y raf.close(); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
First char: X Second char: Y
Explanation
writeChar() writes a 16-bit Unicode character (2 bytes).
readChar() reads 2 bytes and returns them as a char.
You must read them in the same format they were written.
This is ideal for reading files with fixed-size Unicode character data.
Example - Jump to a specific character position
The following example shows the usage of RandomAccessFile readChar() 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("chars2.dat", "rw"); // Write 3 characters raf.writeChar('A'); // Position 0 raf.writeChar('B'); // Position 2 raf.writeChar('C'); // Position 4 // Move to second character (position 2) raf.seek(2); char secondChar = raf.readChar(); System.out.println("Second character: " + secondChar); // B raf.close(); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
Second character: B
Explanation
Each character takes 2 bytes, so positions are 0, 2, 4...
seek(2) jumps directly to the second character.
readChar() reads from that point.
This makes RandomAccessFile powerful for fixed-format files or random lookups in binary data.