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

时间:2014-03-11 13:41:10

标签: java file resources

我想从资源文件夹中获取一个文件(如果它存在)并在那里创建它,如果它没有。我想以文件形式访问它。 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");

    }
}

如何使这项工作?

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

不要在你的捕获区中做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) {


}

这与文件是否存在无关。

答案 2 :(得分:0)

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

InputStream fis = new FileInputStream(f);

使用BufferedReader将内容插入f。

引用的文件

答案 3 :(得分:0)

你试过这个吗?

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