大量のファイルの内容をJavaで一括変更の方法
Javaでは、下記の方法でファイルの内容を一括で変更できます。
- 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();
}
}
}
- 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つの方法を利用できます。実際のニーズに基づいて、適切な方法を選択してファイルの内容を変更してください。