Здесь находится код запуска.
private static void renameFile(File fileName) {
FileOutputStream fileOutputStream =null;
BufferedReader br = null;
FileReader fr = null;
String newFileName = "yourNewFileName"
try {
fileOutputStream = new FileOutputStream(newFileName);
fr = new FileReader(fileName);
br = new BufferedReader(fr);
String sCurrentLine;
while ((sCurrentLine = br.readLine()) != null) {
fileOutputStream.write(("\n"+sCurrentLine).getBytes());
}
fileOutputStream.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fileOutputStream.close();
if (br != null)
br.close();
if (fr != null)
fr.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
Переименование файла, переместив его на новое имя. (FileUtils из Apache Commons IO lib)
String newFilePath = oldFile.getAbsolutePath().replace(oldFile.getName(), "") + newName;
File newFile = new File(newFilePath);
try {
FileUtils.moveFile(oldFile, newFile);
} catch (IOException e) {
e.printStackTrace();
}
Если это просто переименование файла, вы можете использовать File.renameTo () .
В том случае, если вы хотите добавить содержимое второго файла к первому , посмотрите FileOutputStream с опцией конструктора append или То же самое для FileWriter . Вам нужно будет прочитать содержимое файла, чтобы добавить и записать их с помощью выходного потока / записи.
Это простой способ переименовать файл:
File oldfile =new File("test.txt");
File newfile =new File("test1.txt");
if(oldfile.renameTo(newfile)){
System.out.println("File renamed");
}else{
System.out.println("Sorry! the file can't be renamed");
}
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import static java.nio.file.StandardCopyOption.*;
Path yourFile = Paths.get("path_to_your_file\text.txt");
Files.move(yourFile, yourFile.resolveSibling("text1.txt"));
Чтобы заменить существующий файл на имя «text1.txt»:
Files.move(yourFile, yourFile.resolveSibling("text1.txt"),REPLACE_EXISTING);
Попробуйте это
File file=new File("Your File");
boolean renameResult = file.renameTo(new File("New Name"));
// todo: check renameResult
Примечание. Мы всегда должны проверять возвращаемое значение renameTo, чтобы удостовериться, что файл переименования успешный, потому что он зависит от платформы (другая операционная система, другая файловая система), и это не вызывать исключение IO, если переименование не выполняется.
Скопировано из 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*/);
Короче:
Files.move(source, source.resolveSibling("newname"));
Подробнее:
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
Ниже копируется непосредственно из http://docs.oracle.com/javase/ 7 / docs / api / index.html :
Предположим, мы хотим переименовать файл в «новое имя», сохранив файл в том же каталоге:
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()), REPLACE_EXISTING);
Вы хотите использовать метод renameTo для объекта File .
Сначала создайте объект File для представления адресата. Проверьте, существует ли файл. Если он не существует, создайте новый объект File для перемещаемого файла. вызовите метод renameTo в файле, который нужно перенести, и проверьте возвращаемое значение из renameTo, чтобы узнать, был ли вызов успешным.
Если вы хотите добавить содержимое одного файла в другой, есть число доступных писателей. Основываясь на расширении, это звучит как обычный текст, поэтому я бы посмотрел на FileWriter .
Насколько я знаю, переименование файла не будет добавлять его содержимое к содержимому существующего файла с целевым именем.
О переименовании файла на Java см. в документации для метода renameTo()
в классе File
.
Для Java 1.6 и ниже я считаю, что самым безопасным и чистым API для этого является Files.move Guava.
Пример:
File newFile = new File(oldFile.getParent(), "new-file-name.txt");
Files.move(oldFile.toPath(), newFile.toPath());
Первая строка гарантирует, что местоположение нового файла будет одним и тем же каталогом, то есть родительским каталогом старого файла.
EDIT: я написал это, прежде чем я начал использовать Java 7, в котором был введен очень похожий подход. Поэтому, если вы используете Java 7+, вы должны увидеть и откликнуться на ответ kr37.
Files.move(file.toPath(), fileNew.toPath());
работает, но только когда вы закрываете (или autoclose) ВСЕ используемые ресурсы (InputStream
, FileOutputStream
и т. д.) Я думаю, что такая же ситуация с file.renameTo
или FileUtils.moveFile
.