使用Java调用Google API下载GoogleSheet等谷歌工作区文档找不到本地文件咨询
问题1解答
你现在的代码用的是ByteArrayOutputStream,这个输出流是把导出的Excel数据全部存在程序运行的内存缓冲区里,根本没有写入本地磁盘,程序运行结束后内存就会释放,所以你在电脑里找不到任何导出的文件。
问题2解答
需要提前指定本地保存路径。Google Drive API的executeMediaAndDownloadTo方法只负责把下载的数据流写入你传入的输出流对象,不会自动帮你做本地文件持久化,你需要自行指定存储路径,把流写入到磁盘文件中。
修正后的代码示例
public void downloadFileFromDrive() throws Exception { String fileId = "1KVNuObZ4ACxKuOFTjf-SKkIgsDAr4L0x5hJzDz_uzhU"; // 替换为你本地的实际保存路径,Windows路径格式示例:"C:\\Users\\xxx\\Downloads\\导出表格.xlsx" String savePath = "/home/xxx/Downloads/导出的GoogleSheet.xlsx"; // 使用文件输出流直接把数据写入本地磁盘 try (OutputStream outputStream = new FileOutputStream(savePath)) { serviceDrive().files().export(fileId, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") .executeMediaAndDownloadTo(outputStream); } }
注意事项
如果指定的保存路径的上层文件夹不存在,需要提前创建对应文件夹,否则会抛出FileNotFoundException异常。
内容的提问来源于stack exchange,提问作者LDT
相关产品推荐
相关产品推荐

