Source Code : Use RandomAccessFile to save an object
Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com.
Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com.
Click Here or search from google with Libraries Name you get jar file related it
Use RandomAccessFile to save an object
import java.io.IOException;
import java.io.RandomAccessFile;
public class CreateEmployeeFile {
public static void main(String[] args) throws Exception {
String[] fnames = { "A", "B", "C" };
String[] lnames = { "a", "b", "c" };
String[] addresses = { "Box 100", "55 Street", "6 Lane" };
byte[] ages = { 46, 59, 32 };
double[] salaries = { 5.0, 6.0, 3.0 };
RandomAccessFile raf = new RandomAccessFile("employee.dat", "rw");
EmployeeRecord er = new EmployeeRecord();
for (int i = 0; i < fnames.length; i++) {
er.setFirstName(fnames[i]);
er.setLastName(lnames[i]);
er.setAddress(addresses[i]);
er.setAge(ages[i]);
er.setSalary(salaries[i]);
er.write(raf);
}
raf = new RandomAccessFile("employee.dat", "rw");
er = new EmployeeRecord();
int numRecords = (int) raf.length() / er.size();
for (int i = 0; i < numRecords; i++) {
er.read(raf);
System.out.print(er.getFirstName() + " ");
System.out.print(er.getLastName() + " ");
System.out.print(er.getAddress() + " ");
System.out.print(er.getAge() + " ");
System.out.println(er.getSalary());
}
raf.seek(0);
for (int i = 0; i < numRecords; i++) {
er.read(raf);
if (er.getAge() >= 55) {
er.setSalary(0.0);
raf.seek(raf.getFilePointer() - er.size());
er.write(raf);
raf.seek(raf.getFilePointer() - er.size());
er.read(raf);
}
System.out.print(er.getFirstName() + " ");
System.out.print(er.getLastName() + " ");
System.out.print(er.getAddress() + " ");
System.out.print(er.getAge() + " ");
System.out.println(er.getSalary());
}
}
}
class EmployeeRecord {
private String lastName;
private String firstName;
private String address;
private byte age;
private double salary;
void read(RandomAccessFile raf) throws IOException {
char[] temp = new char[15];
for (int i = 0; i < temp.length; i++)
temp[i] = raf.readChar();
lastName = new String(temp);
temp = new char[15];
for (int i = 0; i < temp.length; i++)
temp[i] = raf.readChar();
firstName = new String(temp);
temp = new char[30];
for (int i = 0; i < temp.length; i++)
temp[i] = raf.readChar();
address = new String(temp);
age = raf.readByte();
salary = raf.readDouble();
}
void write(RandomAccessFile raf) throws IOException {
StringBuffer sb;
if (lastName != null)
sb = new StringBuffer(lastName);
else
sb = new StringBuffer();
sb.setLength(15);
raf.writeChars(sb.toString());
if (firstName != null)
sb = new StringBuffer(firstName);
else
sb = new StringBuffer();
sb.setLength(15);
raf.writeChars(sb.toString());
if (address != null)
sb = new StringBuffer(address);
else
sb = new StringBuffer();
sb.setLength(30);
raf.writeChars(sb.toString());
raf.writeByte(age);
raf.writeDouble(salary);
}
void setAge(byte age) {
this.age = age;
}
byte getAge() {
return age;
}
void setAddress(String address) {
this.address = address;
}
String getAddress() {
return address;
}
void setFirstName(String firstName) {
this.firstName = firstName;
}
String getFirstName() {
return firstName;
}
void setLastName(String lastName) {
this.lastName = lastName;
}
String getLastName() {
return lastName;
}
void setSalary(double salary) {
this.salary = salary;
}
double getSalary() {
return salary;
}
int size() {
return 2 * (15 + 15 + 30) + 9;
}
}
Thank with us