import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class LesFraFil { // Kan oppstå feil når vi vil lese en fil, såkalte "Exceptions" / "Unntak" // Det må vi håndtere! Vi har to ulike måter: // Try-catch-blokk: public void lesFiltryCatch(String filnavn) { try { File fil = new File(filnavn); Scanner sc = new Scanner(fil); // Les filen ... sc.close(); } catch (FileNotFoundException e) { System.out.println("Fant ikke filen " + filnavn + "!"); return; } } // Throws public void lesFilThrows(String filnavn) throws FileNotFoundException { File fil = new File(filnavn); Scanner sc = new Scanner(fil); // sc.close(); } // Her trengete vi ikke en try-catch-blokk, høres veldig digg ut! // ... men vi må uansett deale med unntaket der vi bruker/kaller på metoden public void kallPaaLesFilThrows() { String filnavn = "filnavn.txt"; try { lesFilThrows(filnavn); } catch (FileNotFoundException e) { System.out.println("Fant ikke filen " + filnavn + "!"); } } // Les inn linje for linje (tilsvarer slik vi gjør det i Python) public void lesFilLinjer(String filnavn) { File fil = new File(filnavn); Scanner sc; // Håndterer unntaket try { sc = new Scanner(fil); } catch (FileNotFoundException e) { System.out.println("Fant ikke filen " + filnavn + "!"); return; } // Leser inn en fil, linje for linje while (sc.hasNextLine()) { String linje = sc.nextLine(); System.out.println(linje); } // Luker scanneren når jeg er ferdig, det er bra praksis sc.close(); } // Det finnes også flere funksjoner tilgjengelig som dere kan bruke public void lesFilAndre(String filnavn) { File fil = new File(filnavn); Scanner sc; // Håndterer unntaket try { sc = new Scanner(fil); } catch (FileNotFoundException e) { System.out.println("Fant ikke filen " + filnavn + "!"); return; } sc.next(); sc.nextInt(); sc.nextDouble(); sc.nextBoolean(); // og litt flere // Luker scanneren når jeg er ferdig, det er bra praksis sc.close(); } public void skrivTilFil() { // Bruker 'PrintWriter' // Google 'Java api 8 printwriter' og finn frem til denne siden: // https://docs.oracle.com/javase/8/docs/api/java/io/PrintWriter.html } }