Мне нужны все функции file.renameTo в java, но без удаления исходного файла. Например: скажем, у меня есть файл report.doc, и я хочу создать файл report.xml без удаления report.doc. Кроме того, содержимое обоих файлов должно быть одинаковым. (Простая копия) Как мне это сделать?

Я знаю, что это может быть тривиально, но простой поиск не помог.

0
Goutham 11 Янв 2010 в 13:28

2 ответа

Лучший ответ

Для операций с файловой системой Apache Commons IO предоставляет полезные ярлыки.

Видеть:

3
miku 11 Янв 2010 в 13:33

Вы можете создать новый файл с тем же содержанием, что и оригинал.
Для этого используйте java NIO (Java 1.4 или новее):

private static void copy(File source, File destination) throws IOException {
    long length = source.length();
    FileChannel input = new FileInputStream(source).getChannel();
    try {
        FileChannel output = new FileOutputStream(destination).getChannel();
        try {
            for (long position = 0; position < length; ) {
                position += input.transferTo(position, length-position, output);
            }
        } finally {
            output.close();
        }
    } finally {
        input.close();
    }
}

См. ответы на этот вопрос для более

1
Community 23 Май 2017 в 14:55