The Java.io.RandomAccessFile class file is used for reading and writing to random access file. A random access file behaves like a large array of bytes. The RandomAccessFile class has several methods used to move the cursor position in a file to perform read or write operations.
Constructors:
1. RandomAccessFile(File file, String mode)
Creates a random access file stream to read from, and optionally write to, the file specified by the File argument.
2. RandomAccessFile(String name, String mode)
Creates a random access file stream to read from,and optionally write to, a file with the specified name.
The RandomAccessFile class in java has the following methods:
S.No. | Methods with Description |
1 | int read() It reads byte of data from a file. The byte is returned as an integer in the range 0-255. |
2 | int read(byte[] b) It reads byte of data from file upto b.length, -1 if end of file is reached. |
3 | int read(byte[] b, int offset, int len) It reads bytes initialising from offset position upto b.length from the buffer. |
4 | boolean readBoolean() It reads a boolean value from from the file. |
5 | byte readByte() It reads signed eight-bit value from file. |
6 | char readChar() It reads a character value from file. |
7 | double readDouble() It reads a double value from file. |
8 | float readFloat() It reads a float value from file. |
9 | long readLong() It reads a long value from file. |
10 | int readInt() It reads a integer value from file. |
11 | void readFully(byte[] b) It reads bytes initialising from offset position upto b.length from the buffer. |
12 | void readFully(byte[] b, int offset, int len) It reads bytes initialising from offset position upto b.length from the buffer. |
13 | String readUTF() It reads in a string from the file. |
14 | void seek(long pos) It sets the file-pointer(cursor) measured from the beginning of the file, at which the next read or write occurs. |
15 | long length() It returns the length of the file. |
16 | void write(int b) It writes the specified byte to the file from the current cursor position. |
17 | void writeFloat(float v) It converts the float argument to an int using the floatToIntBits method in class Float, and then writes that int value to the file as a four-byte quantity, high byte first. |
18 | void writeDouble(double v) It converts the double argument to a long using the doubleToLongBits method in class Double, and then writes that long value to the file as an eight-byte quantity, high byte first. |
Example:
import java.io.IOException;
import java.io.RandomAccessFile;
public class RandomAccessFileExample {
static final String FILEPATH ="myFile.TXT";
public static void main(String[] args) {
try
{
System.out.println(new String(readFromFile(FILEPATH, 0, 18)));
writeToFile(FILEPATH, "this is program for Randomacess", 31);
} catch (IOException e) {
e.printStackTrace();
}
}
private static byte[] readFromFile(String filePath, int position, int size) throws IOException { RandomAccessFile file = new RandomAccessFile(filePath, "r");
file.seek(position);
byte[] bytes = new byte[size];
file.read(bytes);
file.close();
return bytes;
}
private static void writeToFile(String filePath, String data, int position) throws IOException {
RandomAccessFile file = new RandomAccessFile(filePath, "rw");
file.seek(position);
file.write(data.getBytes());
file.close();
}
}
0 comments:
Post a Comment