import java.io.*; public class Filecopy { // Diese Methode kopiert die Datei „quelle“ nach „Ziel“ // Die Schleife läuft solange, bis die Anzahl der gelesenen Bytes kleiner des Buffers ist private copy(String quelle, String ziel) { byte buffer[]; // Interner Puffer try { data = new byte[512]; // Buffer wurde erzeugt FileInputStream src = new FileInputStream(quelle); // InputStream erzeugt FileOutputStream dest = new FileOutputStream(ziel); // OutputStream erzeugt int n; do { n = src.read(buffer); // Ein Block wird gelesen if (n > 0) dest.write(buffer,0, n); // Block schreiben // 0 ist der Anfangindex im BUFFER // n ist die Anzahl der zuschreiben Bytes } while (n > 0); // n = -1 falls end of file erreicht } catch (IOException io) { System.out.println("IOException"); } } } public static void main(String args[]){ String quelle = "test1.txt"; String ziel = "test2.txt"; copy(quelle, ziel); } Erläuterung: FileInputStream Verwaltet das Einlesen aus einer Datei FileOutputStream Verwaltet das Schreiben in eine Datei n = src.read(buffer); Versucht 512 Byte zu lesen. Rückgabewert ist die Anzahl der eingelesen Bytes. Die Meldung EOF wird mit dem Rückgabewert -1 realisiert. Dest.write(buffer,0,n); Versucht n Byte aus den Array „buffer“ in die Datei zu schreiben 0 ist die Anfangsposition im Array.