繁体   English   中英

如何从资源文件夹中获取文件作为文件?

[英]How to get file from resource folder as File?

我想从资源文件夹中获取文件(如果存在),如果不存在则在此处创建。 我想以文件形式访问它。 class.getResource()无效,因为它返回一个URL。 class.getResourceAsStream()提供输入流,但是然后我无法在其中编写代码,或者我能以某种方式使用吗?

import java.io.File;
import java.io.FileNotFoundException;

public class Statistika {
File file;

public Statistika() {
    try {
        file = Statistika.class.getResourceAsStream("statistics.txt");
    } catch (FileNotFoundException e) {
        file = new File("statistics.txt");

    }
}

如何使这项工作?

尝试使用Statistika.class.getClassLoader().getResource(filename);
如果返回null,则可以创建新文件/目录。
如果您从jar访问此文件,则使用Statistika.class.getClassLoader().getResourceAsStream(filename);
希望它能解决您的问题。 如果您遇到任何困难,请告诉我。

不要做file = new File("statistics.txt"); 在您的捕获块..只需执行以下操作

try {
    File file = new File("statistics.txt");
    InputStream fis = new FileInputStream(file);
    fis = Statistika.class.getResourceAsStream(file.getName());
} catch (FileNotFoundException e) {


}

这与文件是否存在无关。

File f = new File("statistics.txt");
try {
        f.createNewFile();
} catch (IOException ex) { }

InputStream fis = new FileInputStream(f);

使用BufferedReader将内容插入到f引用的文件中。

你有尝试过吗?

File f = new File(Statistika.class.getResource("resource.name").toURI());
if (!f.isFile()){
    f.getParentFile().mkdirs();
    f.createNewFile();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM