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