rendered paste bodyimport java.io.*;
public class TekstitiedostonLukija {
public static void main(String[] args) {
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).");
}
else {
int lkm = new Integer(args[1]);
File tdsto = new File(args[0]);
TekstitiedostonIteroija teksti = new TekstitiedostonIteroija(tdsto, lkm);
teksti.hasNext();
}
}
}
---------------
import java.io.*;
import java.util.Iterator;
public class TekstitiedostonIteroija implements Iterator {
static int VAKIO_RIVIMAARA = 20;
BufferedReader syottotdsto = null;
String seuraavaRivi;
File tiedosto;
private int rivienlkm;
public TekstitiedostonIteroija(File tiedosto) {
try {
this.syottotdsto = new BufferedReader(new FileReader(tiedosto));
}
catch (FileNotFoundException e1) {
System.out.println("Tiedostoa " + tiedosto + " ei löytynyt!");
}
}
public TekstitiedostonIteroija(File tiedosto, int rivienlkm) {
this.rivienlkm = rivienlkm;
if (rivienlkm == 0)
this.rivienlkm = VAKIO_RIVIMAARA;
try {
this.syottotdsto = new BufferedReader(new FileReader(tiedosto));
}
catch (FileNotFoundException e2) {
System.out.println("Tiedostoa " + tiedosto + " ei löytynyt!");
}
catch (NumberFormatException e3) {
System.out.println("2. Parametri ei ollut kokonaisluku!");
}
}
public String annaTiedostonNimi() {
return this.tiedosto.getName();
}
public boolean hasNext() {
do {
try {
seuraavaRivi = syottotdsto.readLine();
} catch (IOException problem) {
problem.printStackTrace();
}
return true;
}
while (seuraavaRivi != null);
}
public Object next() {
for (int i = 0; i < this.rivienlkm; i++) {
if (i < this.rivienlkm)
try {
seuraavaRivi = syottotdsto.readLine();
return seuraavaRivi;
} catch (IOException problem) {
problem.printStackTrace();
}
else if (i < tiedosto.length() && seuraavaRivi != null)
return syottotdsto;
}
return syottotdsto;
}
public void remove() {
}
}