Oppgave 1
Her må du velge deg en stor fil - gjerne en på mange megabyte:
String filnavn = "c:/. . . . ."; InputStream inn = new FileInputStream(filnavn); // åpner filen long tid1 = System.currentTimeMillis(); // leser av klokken // 1. versjon - bruker bare read() int antall1 = 0, k; while ((k = inn.read()) != -1) if (k == 'A') antall1++; tid1 = System.currentTimeMillis() - tid1; // tidsforbruket System.out.println("1. versjon: Tid = " + tid1 + " millisekunder Antall = " + antall1); inn.close(); // lukker filen inn = new FileInputStream(filnavn); // åpner filen på nytt long tid2 = System.currentTimeMillis(); // leser av klokken // 2. versjon - bruker read(byte[] b) byte[] b = new byte[4096]; // hjelpetabell på 4 kb int antall2 = 0, n; while ((n = inn.read(b)) != -1) { for (int i = 0; i < n; i++) if (b[i] == 'A') antall2++; } tid2 = System.currentTimeMillis() - tid2; // tidsforbruket System.out.println("2. versjon: Tid = " + tid2 + " millisekunder Antall = " + antall2); inn.close(); // lukker filen System.out.println("2. versjon er " + (tid1/tid2) + " ganger så rask som 1. versjon");