Как переименовать папку файлов, содержащих определенную строку, используя java [duplicate]

  • Установите JDK 7.0.55 и установите Java для Eclipse для JDK 7.0.55.
  • Создайте проект с помощью JDK 7.0.55, настроив путь сборки JDK 7.0.55.
  • Установите компилятор в Eclipse для JDK 7.0.55 с помощью меню Windows -> Предпочтения -> Java -> Компилятор - выберите 1.7.
143
задан JonasCz 3 May 2015 в 14:21
поделиться

13 ответов

Здесь находится код запуска.

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();
        }
    }
}
-2
ответ дан Anh Pham 21 August 2018 в 12:15
поделиться

Переименование файла, переместив его на новое имя. (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();
  }
16
ответ дан Branflake2267 21 August 2018 в 12:15
поделиться

Если это просто переименование файла, вы можете использовать File.renameTo () .

В том случае, если вы хотите добавить содержимое второго файла к первому , посмотрите FileOutputStream с опцией конструктора append или То же самое для FileWriter . Вам нужно будет прочитать содержимое файла, чтобы добавить и записать их с помощью выходного потока / записи.

3
ответ дан Dan Vinton 21 August 2018 в 12:15
поделиться

Это простой способ переименовать файл:

        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");
        }
10
ответ дан junior 21 August 2018 в 12:15
поделиться
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);
3
ответ дан Kirill Ch 21 August 2018 в 12:15
поделиться

Попробуйте это

File file=new File("Your File");
boolean renameResult = file.renameTo(new File("New Name"));
// todo: check renameResult

Примечание. Мы всегда должны проверять возвращаемое значение renameTo, чтобы удостовериться, что файл переименования успешный, потому что он зависит от платформы (другая операционная система, другая файловая система), и это не вызывать исключение IO, если переименование не выполняется.

3
ответ дан Lonely Neuron 21 August 2018 в 12:15
поделиться

Скопировано из 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*/);
149
ответ дан Nathan 21 August 2018 в 12:15
поделиться

Короче:

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);
69
ответ дан Ryall 21 August 2018 в 12:15
поделиться
  • 1
    Путь - это интерфейс, единственными реализациями которого являются WindowsPath, ZipPath и AbstractPath. Будет ли это проблемой для многоплатформенных реализаций? – Caelum 1 December 2015 в 16:34
  • 2
    Привет @ user2104648, здесь ( tutorials.jenkov.com/java-nio/path.html ) является примером того, как вы можете обрабатывать файлы в среде Linux. В принципе, вам нужно использовать java.nio.file.Paths.get (somePath) вместо использования одной из реализованных вами реализаций – maxivis 9 December 2015 в 16:57
  • 3
    Что такое Path source = ...? – Koray Tugay 5 January 2016 в 10:37

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

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

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

26
ответ дан Thomas Owens 21 August 2018 в 12:15
поделиться

Насколько я знаю, переименование файла не будет добавлять его содержимое к содержимому существующего файла с целевым именем.

О переименовании файла на Java см. в документации для метода renameTo() в классе File.

2
ответ дан Yuval 21 August 2018 в 12:15
поделиться

Для 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.

23
ответ дан Zoltán 21 August 2018 в 12:15
поделиться
Files.move(file.toPath(), fileNew.toPath()); 

работает, но только когда вы закрываете (или autoclose) ВСЕ используемые ресурсы (InputStream, FileOutputStream и т. д.) Я думаю, что такая же ситуация с file.renameTo или FileUtils.moveFile.

0
ответ дан Мотя 21 August 2018 в 12:15
поделиться
1
ответ дан Tạ Anh Tú 1 November 2018 в 06:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: