rendered paste bodyimport java.io.*;
public class TekstitiedostonLukija {
public static void main(String[] args) {
int rivit = TekstitiedostonIteroija.VAKIO_RIVIMAARA;
Scanner nappis = new Scanner(System.in);
if(args.length != 2) {
tulosta_kaytto_ohje();
return -1;
}
File tied = new File(args[0]);
if(!tied.exists()) {
tulosta_virhe_tied_ei_olemassa();
return -1;
}
try {
rivit = Integer.parseInt(args[1]);
} catch(NumberFormatException nfe) {
tulosta_virhe_ei_kok_luku();
return 0;
}
TekstitiedostonIteroija iter = new TekstitiedostonIteroija(tied, rivit);
if(iter.hasNext()) System.out.println(iter.next());
while(nappis.nextLine().compare("") == 0) {
tulosta_info();
System.out.println(iter.next());
}
}
}
---------------
import java.io.*;
import java.util.Iterator;
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) {
this.tiedosto = tiedosto;
this.rivienlkm = VAKIO_RIVIMAARA;
}
public TekstitiedostonIteroija(File tiedosto, int rivienlkm) {
this(tiedosto);
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.readLine;
}
return paluu;
}
public void remove() {
}
}