Olvasás fájlból: ---------------- Ha a projektben megadott adatfájlból akarunk olvasni, akkor: InputStream ins = getClass().getResourceAsStream("/adatok/adatfajl.txt"); fajlbol(ins); vagy így is lehet: File adatFajl = new File(this.getClass().getResource("/adatok/adatfajl.txt").toURI()); és a scanner beállítása: new Scanner(adatFajl, CHAR_SET)) A többi egyforma mindkét esetben. Természetesen szebb, ha egy globális osztályba gyűjtjük a konstansokat. 1. változat - Scanner-rel: private void fajlbol(InputStream ins) { Scanner fajlScanner = new Scanner(ins, CHAR_SET); String sor; while (fajlScanner.hasNextLine()) { sor = fajlScanner.nextLine(); feldolgoz(sor); } } A CHAR_SET final változó a kódolás módját adja meg: private static final String CHAR_SET = "UTF-8"; Fontos a megfelelő try-catch szerkezet. 2. változat - bufferelt beolvasás: private void fajlbol(InputStream ins) { BufferedReader adatBe = null; String adat; adatBe = new BufferedReader(new InputStreamReader(ins, CHAR_SET)); while ((adat = adatBe.readLine()) != null) { // Itt jön az adatok soronkénti beolvasása // adat = adatbe.readLine(); formában feldolgoz(adat); } } Természetesen ide is kell egy megfelelő try-catch szerkezet. Fájlbaírás (egyszerűbb változat): ----------- private void fajlba(File fajl) { if(fajl.exists()){ // rákérdezni, hogy felülírhatjuk-e // ha igen: kiir(fajl); }else{ fajl.createNewFile(); kiir(fajl); } } private void kiir(File fajl) { PrintWriter ki = new PrintWriter(new FileWriter(fajl)) // Itt jön az adatkiírátas. // Egy kiírandó sor kiírási formája: ki.println(adat); } Természetesen mindenütt try-catch, és a végén illik jelezni, hogy elkészült a fájl. Fájlválasztás: -------------- Olvasáshoz: int valasztas = fajlValaszto.showOpenDialog(this); if (valasztas == JFileChooser.APPROVE_OPTION) { File fajl = fajlValaszto.getSelectedFile(); InputStream ins = new FileInputStream(fajl); fajlbol(ins); } } ahol fajlValaszto egy JFileChooser típusú objektum. (Természetesen kivételkezeléssel.) Íráshoz: int valasztas = fajlValaszto.showSaveDialog(null); int irhato; if (valasztas == JFileChooser.APPROVE_OPTION) { File fajl = fajlValaszto.getSelectedFile(); if (fajl.exists()) { irhato = JOptionPane.showConfirmDialog(null, "a fájl már létezik, felülírjam?", "hibaüzenet", JOptionPane.YES_NO_OPTION); if (irhato == JOptionPane.YES_OPTION) { fajlbair(fajl); } } else { fajlbair(fajl); } } Szerializált objektumok írása, olvasása: ---------------------------------------- Olvasás: private void binfajlbol(File fajl) { FileInputStream fajlIn = new FileInputStream(fajl); ObjectInputStream oin = new ObjectInputStream(new BufferedInputStream(fajlIn)); a_beolvasando_objektum = oin.readObject(); } Írás: private void binfajlbaIr(File fajl) { FileOutputStream fout = new FileOutputStream(fajl); ObjectOutputStream oout = new ObjectOutputStream(new BufferedOutputStream(fout)); oout.writeObject(a_kiirando_objektum); oout.flush(); } Ez csak vázlat, ki kell majd egészíteni kivételkezeléssel, de ha ügyesen generálja (block-ot vegyen körbe), akkor minden szükséges dolog generálódik.