/* Tehtävän 3 pisteytys pääpiirteissään: - tarvittavien työkalujen tuonti luokkaan 2p - näppäimistöltä lukeminen 1p - File-olion luominen pyydetystä tiedostosta 3p - Scanner-olio File-oliosta (try-catch) 3p - HashMap-olion luominen 1p - korvattavien rivien kysyminen ja hajautustauluun tallentaminen 4p - tiedoston tulostaminen korvattuna 4p ==================================== max 18 p. Poikkeusten käsitteleminen määrittelemällä main-metodi heittämään poikkeukset ei tuottanut täysiä pisteitä. */ import java.io.*; import java.util.Scanner; import java.util.HashMap; public class Korvaaja { private static Scanner lukija = new Scanner(System.in); public static void main(String[] args) { System.out.print("Anna luettavan tiedoston nimi: "); String tiednimi = lukija.nextLine(); File tiedosto = new File(tiednimi); Scanner tiedostonlukija = null; try { tiedostonlukija = new Scanner(tiedosto); } catch (Exception e) { System.out.println("Tiedostosta " + tiednimi + " ei voi lukea! Ohjelman suoritus lopetetaan."); System.exit(0); } HashMap korvaustaulukko = new HashMap(); System.out.print("Anna korvattava rivi: "); while (lukija.hasNext()) { String korvattava = lukija.nextLine(); System.out.print("Anna korvaava rivi: "); String korvaava = lukija.nextLine(); korvaustaulukko.put(korvattava,korvaava); System.out.print("Anna korvattava rivi (ctrl+d lopettaa): "); } System.out.println("Tiedosto muunnettuna:"); do { String rivi = tiedostonlukija.nextLine(); if (korvaustaulukko.containsKey(rivi)) System.out.println(korvaustaulukko.get(rivi)); else System.out.println(rivi); } while (tiedostonlukija.hasNext()); tiedostonlukija.close(); } }