Løsningsforslag - oppgaver i Vedlegg A.4.1


Oppgave 1

  for (String type : Charset.availableCharsets().keySet())
    System.out.println(type);

Oppgave 2

I flg. kode starter det med UTF-8 både for utskrift og for lesing. Sjekk at det virker. Bruk så ISO-8859-1 begge steder. Velg så UTF-8 for utskrift og ISO-8859-1 for innlesing. Til til slutt det motsatte, dvs. ISO-8859-1 for utskrift og UTF-8 for innlesing.

import java.io.*;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class AlgDat
{
  public static void main(String[] args) throws IOException
  {
    Path vei = Paths.get("fil.txt");
    Charset latin1 = Charset.forName("ISO-8859-1");
    Charset utf8 = Charset.forName("UTF-8");

    BufferedWriter ut = Files.newBufferedWriter(vei, utf8);
    String s = "Dette er en test for Æ, Ø og Å!\nDette er linje nr. 2 med Æ, ø og å.\n";
    ut.write(s);
    ut.close();

    BufferedReader inn = Files.newBufferedReader(vei, utf8);
    String linje;
    inn.lines().forEach(System.out::println);
    inn.close();
  }
}

Oppgave 4

  String s = "Dette er en test!\nDette er linje nr. 2.\n";
  Reader inn = new StringReader(s);
  for (int k = inn.read(); k != -1; k = inn.read()) System.out.print((char)k);
  inn.close();  // er egentlig unødvendig her

  /* Utskrift:
  Dette er en test!
  Dette er linje nr. 2.
  */