阅读 Google 传播 sheet
Reading Google spread sheet
我正在尝试使用 java 代码阅读 Google SpreadSheet。为此,我下载了 client_secret.json 文件并在我的 java 代码中配置如下:
public static Credential authorize() throws IOException {
// Load client secrets.
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
new InputStreamReader(SpreadSheetReader.class.getResourceAsStream("/client_secret.json")));
// Build flow and trigger user authorization request.
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(HTTP_TRANSPORT, JSON_FACTORY,
clientSecrets, SCOPES).setDataStoreFactory(DATA_STORE_FACTORY).setAccessType("offline").build();
Credential credential = new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver())
.authorize(service_account);
System.out.println("Credentials saved to " + DATA_STORE_DIR.getAbsolutePath());
logger.info("Credentials saved to " + DATA_STORE_DIR.getAbsolutePath());
return credential;
}
以上代码运行良好。在这里,我将 client_secret.json 文件放在 src/main/resources/ 路径中。
但现在我想从如下自定义路径读取 client_secret.json:
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
new InputStreamReader(SpreadSheetReader.class.getResourceAsStream("D:/test/client_secret.json")));
但是当我改变到一些不同的路径时,我在上面的确切行中面对 "NullPointerException" 尽管我给出了正确的绝对路径。
如果有人遇到过类似的问题,能帮帮我吗?
SpreadSheetReader.class.getResourceAsStream("D:/test/client_secret.json")
- 很可能是导致 NPE 的原因,因为 getResourceAsStream
正在寻找类路径中的资源(基本上是在您的 JAR 中)。
D:/
绝对不在类路径中,所以我建议您改用 FileInputStream
:
... new InputStreamReader(new FileInputStream("D:/test/.."));
我正在尝试使用 java 代码阅读 Google SpreadSheet。为此,我下载了 client_secret.json 文件并在我的 java 代码中配置如下:
public static Credential authorize() throws IOException {
// Load client secrets.
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
new InputStreamReader(SpreadSheetReader.class.getResourceAsStream("/client_secret.json")));
// Build flow and trigger user authorization request.
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(HTTP_TRANSPORT, JSON_FACTORY,
clientSecrets, SCOPES).setDataStoreFactory(DATA_STORE_FACTORY).setAccessType("offline").build();
Credential credential = new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver())
.authorize(service_account);
System.out.println("Credentials saved to " + DATA_STORE_DIR.getAbsolutePath());
logger.info("Credentials saved to " + DATA_STORE_DIR.getAbsolutePath());
return credential;
}
以上代码运行良好。在这里,我将 client_secret.json 文件放在 src/main/resources/ 路径中。
但现在我想从如下自定义路径读取 client_secret.json:
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
new InputStreamReader(SpreadSheetReader.class.getResourceAsStream("D:/test/client_secret.json")));
但是当我改变到一些不同的路径时,我在上面的确切行中面对 "NullPointerException" 尽管我给出了正确的绝对路径。
如果有人遇到过类似的问题,能帮帮我吗?
SpreadSheetReader.class.getResourceAsStream("D:/test/client_secret.json")
- 很可能是导致 NPE 的原因,因为 getResourceAsStream
正在寻找类路径中的资源(基本上是在您的 JAR 中)。
D:/
绝对不在类路径中,所以我建议您改用 FileInputStream
:
... new InputStreamReader(new FileInputStream("D:/test/.."));