Вопрос-ответ

Rename a file using Java

Переименовать файл с помощью Java

Можем ли мы переименовать файл , скажем , test.txt в test1.txt ?

Если test1.txt существует, будет ли он переименован?

Как мне переименовать его в уже существующий test1.txt файл, чтобы новое содержимое test.txt было добавлено в него для последующего использования?

Переведено автоматически
Ответ 1

Скопировано с http://exampledepot.8waytrips.com/egs/java.io/RenameFile.html

// File (or directory) with old name
File file = new File("oldname");

// File (or directory) with new name
File file2 = new File("newname");

if (file2.exists())
throw new java.io.IOException("file exists");

// Rename file (or directory)
boolean success = file.renameTo(file2);

if (!success) {
// File was not successfully renamed
}

Для добавления в новый файл:

java.io.FileWriter out= new java.io.FileWriter(file2, true /*append=yes*/);
Ответ 2

Вкратце:

Files.move(source, source.resolveSibling("newname"));

Подробнее:

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;

Следующее скопировано непосредственно из http://docs.oracle.com/javase/7/docs/api/index.html:

Предположим, мы хотим переименовать файл в "newname", сохранив файл в том же каталоге:

Path source = Paths.get("path/here");
Files.move(source, source.resolveSibling("newname"));

В качестве альтернативы предположим, что мы хотим переместить файл в новый каталог, сохранив то же имя файла и заменив любой существующий файл с таким именем в каталоге:

Path source = Paths.get("from/path");
Path newdir = Paths.get("to/path");
Files.move(source, newdir.resolve(source.getFileName()), StandardCopyOption.REPLACE_EXISTING);
Ответ 3

Я считаю, что для Java 1.6 и ниже самым безопасным и чистым API для этого является Guava Files.move.

Пример:

File newFile = new File(oldFile.getParent(), "new-file-name.txt");
Files.move(oldFile.toPath(), newFile.toPath());

Первая строка гарантирует, что новый файл находится в том же каталоге, что и родительский каталог старого файла.

РЕДАКТИРОВАТЬ: я написал это до того, как начал использовать Java 7, в которой был представлен очень похожий подход. Итак, если вы используете Java 7 +, вы должны увидеть ответ kr37 и поддержать его.

Ответ 4

Вы хотите использовать метод renameTo для объекта File.

Сначала создайте объект File, представляющий место назначения. Проверьте, существует ли этот файл. Если он не существует, создайте новый объект File для файла, который будет перемещен. вызовите метод renameTo для файла, который нужно переместить, и проверьте возвращенное значение из renameTo, чтобы увидеть, был ли вызов успешным.

Если вы хотите добавить содержимое одного файла в другой, доступно несколько программ для записи. Судя по расширению, это звучит как обычный текст, поэтому я бы посмотрел на FileWriter.

java file