文件复制多份

public class FileCopy {
    public static void main(String[] args) throws Exception {
        File f1 = new File("D:\\test\\demo.doc");
        String path = "D:\\test\\";
        System.out.print("请输入要复制的文件个数:");
        Scanner sc = new Scanner(System.in);
        int cnt = sc.nextInt();

        List<String> list = new ArrayList<String>();
        for (int i = 0; i < cnt; i++) {
            System.out.print("请输入第" + (i + 1) + "个文件名:");
            String newName = sc.next();
            System.out.println("" + (i + 1) + "个文件的名字为:" + newName + ".doc");
            list.add(path + newName + ".doc");
        }
        list.stream().forEach(x -> System.out.println(x));
        copyToMultipleFiles(f1, list.toArray(new String[0]));
    }

    public static void copyToMultipleFiles(File inFile, String[] outFiles) throws IOException {
        OutputStream[] outStreams = new OutputStream[outFiles.length];
        try {
            for (int i = 0; i < outFiles.length; i++)
                outStreams[i] = new FileOutputStream(outFiles[i]);
            try (InputStream inStream = new FileInputStream(inFile)) {
                byte[] buf = new byte[16384];
                for (int len; (len = inStream.read(buf)) > 0;)
                    for (OutputStream outStream : outStreams)
                        outStream.write(buf, 0, len);
            }
        } finally {
            for (OutputStream outStream : outStreams)
                if (outStream != null)
                    outStream.close();
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/moris5013/p/11535797.html
今日推荐