package javacodebook.io.transferfile;

import java.io.*;
import java.nio.*;
import java.nio.channels.*;

/**
 * Kopieren von Dateien mit New IO (JDK 1.4). Die übliche Lese-/Schreibschleife
 * entfällt.
 */
public class TransferFile {

    public static void transferFile(File source, File target) throws IOException {
        FileInputStream in = new FileInputStream(source);
        FileOutputStream out = new FileOutputStream(target);
        FileChannel sourceChannel = in.getChannel();
        FileChannel targetChannel = out.getChannel();
        sourceChannel.transferTo(0, source.length(), targetChannel);
        sourceChannel.close();
        targetChannel.close();
    }

    public static void main(String[] args) {
        try {
            System.out.print("Quelldatei: ");
            String sourceFileName = new BufferedReader(new InputStreamReader(System.in)).readLine();
            File sourceFile = new File(sourceFileName);
            System.out.print("Ziel: ");
            String targetFileName = new BufferedReader(new InputStreamReader(System.in)).readLine();
            File targetFile = new File(targetFileName);
            transferFile(sourceFile, targetFile);
            System.out.println("Datei wurde übertragen");
        }
        catch(IOException e) {
            e.printStackTrace(System.out);
        }
    }
}
