大量のファイルの内容をJavaで一括変更の方法

Javaでは、下記の方法でファイルの内容を一括で変更できます。

  1. FileInputStreamとFileOutputStreamを使って、元のファイルをFileInputStreamで読み込み、加工した内容をFileOutputStreamで新しいファイルに書き出す。また、複数のファイルに対しては、ループ処理で読み込みと書き出しを行うことで、各ファイルに対して加工を行うことができる。
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileContentModifier {

    public static void modifyFileContent(String filePath) throws IOException {
        // 读取原始文件内容
        FileInputStream fis = new FileInputStream(filePath);
        byte[] content = new byte[fis.available()];
        fis.read(content);
        fis.close();

        // 修改文件内容
        String modifiedContent = new String(content);
        modifiedContent = modifiedContent.replaceAll("oldText", "newText");

        // 将修改后的内容写入新文件
        FileOutputStream fos = new FileOutputStream("newFile.txt");
        fos.write(modifiedContent.getBytes());
        fos.close();
    }

    public static void main(String[] args) {
        String[] fileNames = {"file1.txt", "file2.txt", "file3.txt"};

        try {
            for (String fileName : fileNames) {
                modifyFileContent(fileName);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
  1. RandomAccessFileクラスを利用する:RandomAccessFileクラスは、ファイルの内容の読み書きを同時に行うことが可能で、seek()メソッドを利用して変更したい位置に定位し、write()メソッドを利用して新しい内容を書き込むことができる。
import java.io.IOException;
import java.io.RandomAccessFile;

public class FileContentModifier {

    public static void modifyFileContent(String filePath) throws IOException {
        // 以读写方式打开文件
        RandomAccessFile raf = new RandomAccessFile(filePath, "rw");

        // 定位到需要修改的位置
        raf.seek(10);

        // 写入新的内容
        raf.writeBytes("newText");

        // 关闭文件
        raf.close();
    }

    public static void main(String[] args) {
        String[] fileNames = {"file1.txt", "file2.txt", "file3.txt"};

        try {
            for (String fileName : fileNames) {
                modifyFileContent(fileName);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

複数のファイルの内容を一括修正するには、この2つの方法を利用できます。実際のニーズに基づいて、適切な方法を選択してファイルの内容を変更してください。

bannerAds