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); } } }