package TestIngresso; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; public class CatN { /** * metodo dell'oggetto CatN
Il metodo non e' dichiarato statico, dal momento che utilizziamo nel main un oggetto CatN per * richiamarlo. Usare un metodo statico solo perche' si chiama nel main non e' corretto, in generale, anche se puo' non provocare * errori in fase di esecuzione. * * @param is rappresenta l'InputStream che si vuole copiare sullo standard output */ public void copy(InputStream is) { final int MAXBUFFER = 1024; byte [] buffer = new byte[MAXBUFFER]; int letti = 0; try { while( (letti = is.read(buffer,0,MAXBUFFER))!= (-1)) { System.out.write(buffer,0,letti); } } catch (IOException e) { e.printStackTrace(); } return; } /** * Main del programma: controlla se ci sono argomenti. Se non ve ne sono, si configura come un filtro (legge lo standard input e * scrive lo standard output) altrimenti copia tutti i file di cui viene passato il nome dalla riga di comando * * @param args ciascun parametro rappresenta un nome di file da copiare sullo standard output */ public static void main(String[] args) { // creazione dell'oggetto copiatore CatN copier = new CatN(); if(args.length == 0) { // se non ci sono parametri, funziona da filtro copier.copy(System.in); } else { // altrimenti processa tutti i file passati come argomento for(int i=0; i