当打开凭据时IOException

时间:2019-04-02 10:59:10

标签: java android json ioexception

我正在制作一个应用程序以连接到Google Calendar API,但是每当我尝试加载客户端机密时,都会出现IOException跳转。

我尝试过从更改文件的存储路径(首先将其保存在应用程序文件夹中,然后将其移动到res/assets)到更改使用InputStream打开文件的方式: 1º首先,代码是这样的:

private static final String CREDENTIALS_FILE_PATH = "assets/credentials.json";
InputStream in = this.class.getResourceAsStream(CREDENTIALS_FILE_PATH);
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));

然后我尝试从资产中打开它:

InputStream in = this.getAssets().open("credentials.json");
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));

但是无论我如何尝试,它都会给我java.io.FileNotFoundException: credentials.json错误,并且我不确定是否是由于路径名,打开方式或其他原因造成的。

1 个答案:

答案 0 :(得分:0)

调查之后,我发现了如何访问json。 首先是将文件从res/assets移到res/raw

然后更改此行:

InputStream in = this.getAssets().open("credentials.json");

对此

InputStream in = this.getResources().openRawResource(R.raw.credentials);

现在可以毫无问题地读取文件