The key to random access files is proper positioning of the file pointer prior to a read or write. Steps: 1. Open the file RandomAccessFile myFile = new RandomAccessFile(fileName, "rw"); 2. Position the file pointer: myFile.seek(num * RECORDSIZE); 3. Read or write the record, using the proper method type: myFile.writeUTF(firstName); // For string data write or firstName = myFile.readUTF(); // For string data read 4. For writing a new record, you must add it to the end of the file (unless you are using some kind of hashing algorithm to determine record position). You can use: bytes = myFile.length(); to determine how many bytes are already in the file. All you need to do then is use RECORDSIZE to figure out how many records are in the file and increment that count by one so you don't overwrite the last record currently in the file.