复制一个字符串文件并更改一些文本

时间:2015-10-31 11:55:46

标签: java

我正在尝试读取文件内容,然后更改一些内部文本,然后复制到新位置。

在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());
}

2 个答案:

答案 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());
}