Linux - Friheden til at programmere i Java: Version 0.7.20040516 - 2020-12-31
forrige Kapitel 15. Datastrømme og filhåndtering næste

15.6. Ekstra eksempler

Herunder læser vi en fil og udregner filens tjeksum og antallet af linjer i filen.

import java.io.*;
import java.util.zip.*;

public class UndersoegFil
{
  public static void main(String[] args) throws IOException
  {
    FileInputStream //fil = new FileInputStream("skrevet fil.txt")// ;
    BufferedInputStream //bstrøm = new BufferedInputStream(fil)// ;
    CRC32 tjeksum = new CRC32();
    CheckedInputStream //chkstrøm = new CheckedInputStream(bstrøm,tjeksum)// ;
    InputStreamReader //txtstrøm  = new InputStreamReader(chkstrøm)// ;
    LineNumberReader //ind        = new LineNumberReader(txtstrøm)// ;

    String linje;
    while ((linje= //ind.readLine()// )!= null) System.out.println("Læst: "+linje);

    System.out.println("Antal linjer: "  + //ind.getLineNumber()// );
    System.out.println("Checksum (CRC):" + //tjeksum.getValue()// );
  }
}

Resultatet bliver

Læst: person0 k 43
Læst: person1 k 10
Læst: person2 k 16
Læst: person3 k 11
Læst: person4 k 21
Antal linjer: 5
Checksum (CRC):3543848051

Læg mærke til, hvordan vi hægter datastrøm-objekterne sammen i en kæde ved hele tiden at bruge det forrige objekt i som parameter til konstruktørerne: Filindlæsning, buffering, tjeksum, gå fra binær til tekstbaseret indlæsning (InputStreamReader) og linjetælling.

While-løkken er skrevet meget kompakt med en tildeling (linje=ind.readLine()) og derefter en sammenligning, om værdien af tildelingen var null ( (..) != null).


forrige hjem næste
Appendiks op Opgaver