rendered paste bodyimport java.io.*;
import java.util.Iterator;
import java.util.Scanner;
public class TekstitiedostonIteroija implements Iterator {
public static final int VAKIO_RIVIMAARA = 20;
private String seuraavaRivi;
private File tiedosto;
private int rivienlkm;
private Scanner lukija;
public TekstitiedostonIteroija(File tiedosto) throws java.io.FileNotFoundException {
this.tiedosto = tiedosto;
this.rivienlkm = VAKIO_RIVIMAARA;
if (!tiedosto.exists())
throw new FileNotFoundException();
}
public TekstitiedostonIteroija(File tiedosto, int rivienlkm) throws java.io.FileNotFoundException {
this(tiedosto);
if (rivienlkm == 0)
rivienlkm = VAKIO_RIVIMAARA;
this.rivienlkm = rivienlkm;
this.lukija = new Scanner(tiedosto);
}
public String annaTiedostonNimi() {
return this.tiedosto.getName();
}
public boolean hasNext() {
return lukija.hasNextLine();
}
public Object next() {
String paluu = "";
for (int i = 0; i < this.rivienlkm; i++) {
if (this.hasNext())
paluu += lukija.nextLine() + "\n";
}
return paluu;
}
public void remove() {
}
}
--------------------
import java.io.*;
import java.util.EmptyStackException;
import java.util.Scanner;
public class TekstitiedostonLukija {
public static void main(String[] args) throws FileNotFoundException {
int rivit = TekstitiedostonIteroija.VAKIO_RIVIMAARA;
Scanner nappis = new Scanner(System.in);
if (args.length != 2) {
System.out.println("Anna vain kaksi parametria!");
System.out.println("1. Parametri kertoo luettavan tiedoston.");
System.out.println("2. Parametri kerralla luettavien rivien lukumäärän (0 on vakio).");
}
File tied = new File(args[0]);
if (!tied.exists())
System.out.println("Tiedostoa " + tied + " ei löytynyt!");
try {
rivit = Integer.parseInt(args[1]);
}
catch (NumberFormatException nfe) {
System.out.println("2. Parametri ei ollut kokonaisluku!");
}
TekstitiedostonIteroija iter = new TekstitiedostonIteroija(tied, rivit);
if (iter.hasNext())
System.out.println(iter.next());
while(nappis.nextLine().compareTo("") == 0) {
System.out.println("Tiedosto " + tied + ", (pelkkä enter jatkaa)");
System.out.println(iter.next());
}
}
}