Java 按名称查找目录中的特定文件,并将文件保存到本地文件夹
我想找到一个名为SAVE.properties的文件。我看了不同的问题,似乎他们会回答我,但我看不出他们会回答 例如,我想检查一个目录(及其子文件夹)中是否存在SAVE.propertiesJava 按名称查找目录中的特定文件,并将文件保存到本地文件夹,java,properties,directory,Java,Properties,Directory,我想找到一个名为SAVE.properties的文件。我看了不同的问题,似乎他们会回答我,但我看不出他们会回答 例如,我想检查一个目录(及其子文件夹)中是否存在SAVE.properties 我还想知道如何将.properties文件(然后从此位置读取)保存到运行程序的目录中。如果从桌面运行,则应将.properties文件保存在那里。通过使用可以轻松实现保存属性,这允许您通过使用OutputStream定义内容保存到的位置 所以你可以用 Properties 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文档,仔细看了一眼。再一次。我意识到这是一个多么幼稚的错误。我的错。你真的帮助了我,我很感激。