^ Linux - Friheden til at programmere i Java: Version 0.7.20040516 - 2020-12-31 ^| | [[java:java-io-txt-analyse-appendix|forrige]] | Kapitel 15. Datastrømme og filhåndtering | [[java:java-io-opgaver|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). ---- | [[java:java-io-txt-analyse-appendix|forrige]] | [[java:index|hjem]] | [[java:java-io-opgaver|næste]] | | Appendiks | [[java:java-io|op]] | Opgaver |