Ist in JAVA zum Glück super gelöst. Du hast prinzipiell zwei Möglichkeiten Dateien zu lesen und zu schreiben: Entweder RandomFileAccess oder (meine Empfehlung weil deutlich angenehmer) FileInputStream/FileOutputStream.
Dabei werden Objekte in die Datei geschrieben (bei FileOutputStream), zum Beispiel ein String oder eine Integer oder auch komplexere Sachen wie Object[][], ArrayList, String[] oder eine ArrayList aus einzelnen String[] - alles möglich.
Das Auswählen einer Datei ist auch ganz leicht zu realisieren, dafür ist der JFileChooser zuständig der drei Modi kennt, zwei davon sind "SAVE" und "OPEN", das dritte weiß ich grad nicht auswendig. Genauere Informationen über all das findest du in der JAVA API Specification von Sun auf java.sun.com.
Schau dich dort mal um, wenn du nicht zurechtkommst dann kann ich dir hier Quellcodeausschnitte aus meinen eigenen Programmen posten für alles benötigte.