无法从我的src / main / resources目录中读取

时间:2016-11-20 19:20:28

标签: java

我正在尝试了解有关如何使用Java读取文件的更多信息。

目前我有一些代码可以读取同一目录中的文件:

    @Override
public Loader<List<Falla>> onCreateLoader(int i, Bundle bundle)
{
    return new FallaLoader(this, F_URL);
}

@Override
public void onLoadFinished(Loader<List<Falla>> loader, List<Falla> fallas)
{
    View loadingIndicator = findViewById(R.id.loading_indicator);
    loadingIndicator.setVisibility(View.GONE);
    mEmptyStateTextView.setText(R.string.no_fallas);

    if (fallas != null && !fallas.isEmpty())
    {
        adapter.swap(fallas);
    }
}

@Override
public void onLoaderReset(Loader<List<Falla>> loader) {

}

我的问题是当我尝试将文件移动到资源目录时。

File file = new File(getClass().getResource(fileName).getPath());

    try (Scanner scanner = new Scanner(file)) {

        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();
            result.append(line).append("\n");
        }

        scanner.close();

    } catch (IOException e) {
        e.printStackTrace();
    }

我可以使用InputStream从资源目录中读取文件,但我试图避免这样做。文件变量是我期望的工作,但事实并非如此。

有没有人建议我应该从哪里开始?

3 个答案:

答案 0 :(得分:0)

File file = new File(getClass().getResource("/"+fileName).getFile());

如果文件位于src/main/resources文件夹的根目录,则使用Maven。

答案 1 :(得分:0)

这就是我最终解决这个问题的方法:

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("main/resources/" + fileName).getFile());

答案 2 :(得分:-1)

你可以试试以下吗?         ClassLoader classLoader = ClassLoader.getSystemClassLoader(); File file = new File(classLoader.getResource(fileName).getFile());