当前位置: 首页 > 知识库问答 >
问题:

如何在Java中仅更改文件名的一部分?

苏承载
2023-03-14

我有一个名为“ParkPhotos.txt”的文件,里面有一些公园的12个名字,例如“AmericanMosao_photo.jpg”。我想把“_photo.jpg”改成“_info.txt”,但我很挣扎。在代码中,我能够读取该文件,但我不确定如何替换它。

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class FileNameChange {

    public static void main(String[] args) throws IOException
    {

        readFileValues();

    }

    public static void readFileValues() throws IOException
    {
        try {
            File aFile  = new File("ParkPhotos.txt");
            Scanner inFile = new Scanner(aFile);

            while (inFile.hasNextLine())
            {
                String parkNames = inFile.nextLine();
                System.out.println(parkNames);
           
            }
           inFile.close();
        } catch (FileNotFoundException e)
        {
            System.out.println("An error has occurred");
            e.printStackTrace();
        }


    }

}

共有1个答案

史淳
2023-03-14

您可以转换为新内容并将其写入当前文件。例如:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Scanner;

public class FileNameChange {

    public static void main(String[] args) throws URISyntaxException {
        String newContent = readFileValues();
        writeFileValues(newContent);
    }

    public static String readFileValues() {
        StringBuilder newContent = new StringBuilder();

        try {
            URL url = FileNameChange.class.getClassLoader().getResource("ParkPhotos.txt");
            File aFile = new File(url.toURI());
            Scanner inFile = new Scanner(aFile);

            while (inFile.hasNextLine()) {
                String parkName = inFile.nextLine();
                if (parkName == null || parkName.isEmpty()) {
                    continue;
                }
                newContent.append(parkName.replace("_photo.jpg", "_info.txt"))
                        .append(System.lineSeparator());
            }
            inFile.close();
        } catch (FileNotFoundException | URISyntaxException e) {
            e.printStackTrace();
        }
        return newContent.toString();
    }

    public static void writeFileValues(String content) throws URISyntaxException {
        URL url = FileNameChange.class.getClassLoader().getResource("ParkPhotos.txt");
        File aFile = new File(url.toURI());
        try (FileWriter writer = new FileWriter(aFile)) {
            writer.write(content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

注意:文件将写入构建文件夹。例如:example_1/构建/资源/main

 类似资料:
  • 我在文本编辑器中有一个另存为...功能。我想做一个另存为,保存到一个新文件,但是我要保存的永久文件现在应该总是这个新文件。所以当我点击我的另一个按钮,保存,而不是保存到以前的位置,将继续保存到用JFileChooser选择的位置。 我有一个名为currentFile的文件对象,它应该链接到通过“另存为”选择的文件。我目前正在通过在我的按钮操作执行功能中创建一个名为fileName的文件,然后将cu

  • 我已经重新安排并定制了Eclipse布局,使其符合我的喜好。但是每当我打开一个java源文件时,它都会在带有Package Explorer和Outline的框中打开,而不是在左边我想要的大框中(参见屏幕截图)。我怎样才能改变这个?

  • 问题内容: 可以在Django中更改上传文件的文件名吗?我搜索了,但找不到任何答案。 我的要求是,无论何时上传文件,其文件名都应以以下格式更改。 非常感谢你… 问题答案: 你如何上传文件?我以为。 FileField.upload_to的文档说,该字段 也可以是可调用的,例如函数,将被调用以获得上载路径,包括文件名。该可调用对象必须能够接受两个参数,并返回要传递给存储系统的Unix样式的路径(带有

  • 问题内容: 内容: 我想使用jenkins定期仅处理SVN中已更改的文件,并将处理的输出提交回SVN。 原因: 我们正在将二进制文件提交到SVN中(我们正在使用Oracle Forms,并且正在提交fmb- Files)。我创建了一个脚本,将fmb导出到xml(使用Oracle的原始Fmb2XML工具),然后我将XML转换为我们也想提交的纯源。这使我们可以进行摸索,查看更改等。 问题: 目前,我只

  • 我找到了这个解决方案:如何在Android Studio中更改项目的名称,但似乎不起作用,我不想损坏任何东西,所以我的问题-如何更改项目的文件夹名称? 我找不到任何内部解决办法,所以也许你有什么把戏。

  • 我有一个用 PhpStorm 管理的 TypeScript 项目。所有 ts 文件都被正确识别为打字稿文件,在我的文件类型设置中,我有 文件映射打字稿。 所有的文件?不,一个文件顽固地不会被视为TypeScript文件,而是显示为纯文本。我不知道如何将这个标记为TypeScript文件。 所有<code>*。ts文件旁边有正确的ts图标。这个没有。 当我打开流氓文件时,PhpStom告诉我有该文件