All pastes #673385 Raw Edit

Someone

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