(Java)从Google云端硬盘下载文件时出错

时间:2016-10-24 03:54:20

标签: java google-drive-api

我的代码中出现了以下3个错误:

private static void downloadFile(Drive service, String fileId) {
    try {

        OutputStream outputStream = new FileOutputStream("test.csv");
        service.files().export(fileId, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet").executeMediaAndDownloadTo(outputStream);

    } catch (IOException e) {
        // An error occurred.
        e.printStackTrace();
    }
}

这里是错误结果:

  

线程中的异常" main" java.lang.NullPointerException at   googleBaru.mainClass.downloadFile(mainClass.java:51)at   googleBaru.mainClass.main(mainClass.java:60)

我希望任何人都可以修复我的代码,或者我想如何调用方法(使用参数service和fileId)

非常感谢,抱歉我的英语不好

1 个答案:

答案 0 :(得分:0)

  

我的代码中出现了这3个错误。

实际上,这是一个堆栈跟踪......它描述了一个错误,而不是三个错误。

错误发生在mainclass.java文件的第51行。那就是这个:

  service.files().export(fileId, 
      "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet").
      executeMediaAndDownloadTo(outputStream);

假设service应该是Drive对象,那么从Java角度来看这个:

  • service引用可以为null,
  • files()方法可能已返回null(我认为不可能)或
  • export()方法可能已返回null(我认为不可能)。

根据我对Drive API javadocs的解读,“不可能”的案例。

简而言之,最合理的解释是service引用为null。找出原因,并找出原因。

@ TimBiegeleisen关于文件路径的评论也可能是正确的,但这不是您所看到的NullPointerException的原因。