Witam,

Mam problem z następującym kodem, wydaje mi się że powinien działaś, nie umiem znaleźć blędu.
Program przepisuje tylko 1 plik wejściowy do wyjściowego.
Powinien jeszcze wypisać plik wyjściowy, tego też nie robi.

Dodam jeszcze, że problem występuje tylko na macu, na windows'ie działa poprawnie.
Proszę o wskazówki w jaki sposób można naprawić ten kod.

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;


public class CAT {
	private static final int BUF = 2048;
	
	public static void wypisz(String [] args){
		FileInputStream plik = null;
		byte [] buf = new byte [BUF];
		for(String i:args) {
			try {
				plik = new FileInputStream(i);
				
				int licz;			
				while((licz = plik.read(buf,0,BUF)) != -1) {
					System.out.write(buf, 0, licz);
				}
				System.out.println();
                
			} catch(IOException e) {
				System.err.println("Blad strumienia");
			} finally {
				if(plik != null){
					try {
						plik.close();
					} catch(IOException e) {
						System.err.println("Blad zamykania strumienia");
						plik = null;
					}
				}
			}
		}		
	}
	
	public static void polacz(String [] args, int l) {
			FileInputStream plik = null;
			FileOutputStream plik2 = null;
			
		try {
			plik2 = new FileOutputStream(args[l+1]);
			
			byte [] buf = new byte [BUF];
			for(int i = l-1; i > 0; i--) {
                try {
					plik = new FileInputStream(args[i]);
					
					int licz;			
					while((licz = plik.read(buf,0,BUF)) != -1) {
						plik2.write(buf, 0, licz);
					}
				} catch(IOException e) {
					System.err.println("Blad strumienia");
				} finally {
					if(plik != null){
						try {
							plik.close();
						} catch(IOException e) {
							System.err.println("Blad zamykania strumienia");
							plik = null;
						}
					}
				}
			}
            
         
		} catch(IOException e) {
				System.err.println("Blad strumienia");
		} finally {
			if(plik2 != null){
				try {
					plik2.close();
				} catch(IOException e) {
					System.err.println("Blad zamykania strumienia");
					plik2 = null;
				}
			}
		}		
	}
	
	public static void main(String [] args){
		
        
           
        
        if(args.length > 0) {
			if(args.length > 1 && args[args.length - 2].equals(">")) {
				polacz(args, args.length - 2);
				String [] s = new String [1];
				s[0] = args[args.length - 1];
				wypisz(s);
			} else {
				wypisz(args);
			}
		} else {
			System.out.println("Brak argumentow");
		}
	}
}