我正在尝试读取文件内容,然后更改一些内部文本,然后复制到新位置。
在java 1.7。下运行此代码,代码创建文件但无法用newName替换内部内容。
if (file.isFile()) {
Charset charset = StandardCharsets.UTF_8;
String content = new String(Files.readAllBytes(file.toPath()), charset);
content.replaceAll("(?i)" + oldName, newName);
String newFileName = file.getAbsolutePath().replace(oldName, newName);
File newFile = new File(newFileName);
newFile.getParentFile().mkdirs();
newFile.createNewFile();
Files.write(newFile.toPath(), content.getBytes());
}
答案 0 :(得分:4)
字符content
不会被replaceAll
函数更改。您必须将其返回值保存为新字符串并使用此字符串。
答案 1 :(得分:0)
你可以试试吗?
if (file.isFile()) {
Charset charset = StandardCharsets.UTF_8;
String content = new String(Files.readAllBytes(file.toPath()), charset);
content = content.replaceAll("(?i)" + oldName, newName); // Modified here
String newFileName = file.getAbsolutePath().replace(oldName, newName);
File newFile = new File(newFileName);
newFile.getParentFile().mkdirs();
newFile.createNewFile();
Files.write(newFile.toPath(), content.getBytes());
}