Java 按名称查找目录中的特定文件,并将文件保存到本地文件夹

Java 按名称查找目录中的特定文件,并将文件保存到本地文件夹,java,properties,directory,Java,Properties,Directory,我想找到一个名为SAVE.properties的文件。我看了不同的问题,似乎他们会回答我,但我看不出他们会回答 例如,我想检查一个目录(及其子文件夹)中是否存在SAVE.properties 我还想知道如何将.properties文件(然后从此位置读取)保存到运行程序的目录中。如果从桌面运行,则应将.properties文件保存在那里。通过使用可以轻松实现保存属性,这允许您通过使用OutputStream定义内容保存到的位置 所以你可以用 Properties properties = ...;

我想找到一个名为SAVE.properties的文件。我看了不同的问题,似乎他们会回答我,但我看不出他们会回答

例如,我想检查一个目录(及其子文件夹)中是否存在SAVE.properties


我还想知道如何将.properties文件(然后从此位置读取)保存到运行程序的目录中。如果从桌面运行,则应将.properties文件保存在那里。

通过使用可以轻松实现保存属性,这允许您通过使用
OutputStream
定义内容保存到的位置

所以你可以用

Properties properties = ...;
//...
try (FileOutputStream os = new FileOutputStream(new File("SAVE.properties"))) {
    properties.store(os, "Save");
} catch (IOException exp) {
    exp.printStackTrace();
}
您还可以使用读取“属性”文件的内容

请仔细查看以了解更多详细信息

查找
文件
与使用

 File file = new File("SAVE.properties");
 if (file.exists) {...
这将检查当前工作目录中是否存在指定的文件

搜索子目录稍微复杂一些,需要使用一些递归,例如

public File find(File path) {

    File save = new File(path, "SAVE.properties");
    if (!save.exists()) {
        save = null;
        File[] dirs = path.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return  pathname.isDirectory();
            }
        });
        for (File dir : dirs) {
            save = find(dir);
            if (save != null) {
                break;
            }
        }
    }
    return save;
}

使用
find(新文件(“.”)
将从当前工作目录开始搜索。请注意,在适当的情况下,这可能会搜索整个硬盘。

当使用properties.store方法时,第一个参数是什么?@Aaron你是什么意思<代码>属性#存储将
属性
对象的内容写入指定的
输出流
,如示例所示。确保您阅读了JavaDocs和链接教程……我的意思是在编写
properties.store(os,“Save”)时使用了第一个示例
使用
try
子句。
os
OutputStream
定义的
try(FileOutputStream os=newfileoutputstream(new File(“SAVE.properties”)){
哇,我真傻。我刚看了java文档,仔细看了一眼。再一次。我意识到这是一个多么幼稚的错误。我的错。你真的帮助了我,我很感激。