Java Gmail API -使用Inputstream vs BufferedReader从json文件读取凭证.&



我试图在Ubuntu服务器上运行我的java应用程序。我输入了绝对路径来读取该文件,但它产生了一个错误。

读取该文件的代码如下:

private static final String CREDENTIALS_FILE_PATH = "/home/dockeradmin/credentials.json";

InputStream in = application.class.getResourceAsStream(CREDENTIALS_FILE_PATH);
if (in == null) {
throw new FileNotFoundException("Resource not found: " + CREDENTIALS_FILE_PATH);
}

得到的错误是:

java.io.FileNotFoundException: Resource not found: /home/dockeradmin/credentials.json

当我尝试使用BufferedReader读取相同路径的文件时,一切都工作得很好。

:

BufferedReader br = new BufferedReader(new FileReader(new File("/home/dockeradmin/credentials.json")));

所以我的问题是,这两者之间的区别是什么,我如何解决我当前的问题?

这个错误的原因是getresourcesstream是用来定位类路径上的文件,而不能定位文件系统上的文件。

这行出了问题。

InputStream in = application.class.getResourceAsStream(CREDENTIALS_FILE_PATH);

我通过用

替换那个来修复这个问题
InputStream in = new FileInputStream(CREDENTIALS_FILE_PATH);

最新更新