0

ソース ファイルを args[0] に、ターゲットを args[1] に指定するにはどうすればよいですか? 同じパッケージに source.txt と target.txt を作成し、実行構成の引数として "./source.txt" と "./target.txt" を入れました。ただし、「./source.txt」が読み取り可能ではないという例外がスローされます。

 Exception in thread "main" java.lang.IllegalArgumnetException: ./source.txt

ウェアリングとは?

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import de.sb.javase.TypeMetadata;


/**
   * Demonstrates copying a file using a single thread.
*/
public final class FileCopyLinear {

/**
 * Copies a file. The first argument is expected to be a qualified source file name,
 * the second a qualified target file name. 
 * @param args the VM arguments
 * @throws IOException if there's an I/O related problem
 */
public static void main(final String[] args) throws IOException {
    final Path sourcePath = Paths.get(args[0]);
    if (!Files.isReadable(sourcePath)) throw new IllegalArgumentException(sourcePath.toString());

    final Path sinkPath = Paths.get(args[1]);
    if (sinkPath.getParent() != null && !Files.isDirectory(sinkPath.getParent())) throw new IllegalArgumentException(sinkPath.toString());

    Files.copy(sourcePath, sinkPath, StandardCopyOption.REPLACE_EXISTING);

    System.out.println("done.");
}
}
4

2 に答える 2