All pastes #673344 Raw Edit

Someone

public text v1 · immutable
#673344 ·published 2007-08-28 10:15 UTC
rendered paste body
import 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() {    
  }

}