从Java驱动器以Java文件下载文件
我的最终目标是编写一个简单的程序,在每周末将一个特定的Google电子表格下载到本地硬盘驱动器。该文件将由其他人按周到周编辑,我将不断需要下载更新后的版本以提取数据并传递给我编写的bash脚本。我现在正在手动执行此操作,但是如果我可以以csv格式下拉电子表格,则可以自动执行整个过程。从Java驱动器以Java文件下载文件
我对Google的文档有些困惑。我已经复制了他们的示例方法downloadFile
,但我仍然不清楚正在传递的确切参数,并且返回InputStream
。
如果我要添加一个主要方法来调用downloadFile
方法,我会传递哪些示例参数。
然后,我可以使用InputPut
它返回的流是保存文件是csv格式吗?
此外,这是唯一的方法,我需要或做的是有更多的呢?
downloadFile
方法在这里被定义(留出了import语句):
private static InputStream downloadFile (Drive service, File file) {
if (file.getDownloadUrl() !=null && file.getDownloadUrl().length() > 0) {
try {
HttpResponse resp = service.getRequestFactory().buildGetRequest(new GenericUrl(file.getDownloadUrl())).execute();
return resp.getContent();
}
catch (IOException e) {
e.printStackTrace();
return null;
}
}
else {
return null;
}
}
您需要的文件类的实例,第二个参数。从我发现的。 Google的专有File类以最简单的形式可以用零参数实例化。喜欢这个。
File f = new File();
要构建驱动对象,有一个关于如何操作的示例。向下滚动至使用OAUTH 2.0凭据。 https://developers.google.com/drive/credentials
File参数也被导入来自Google API。这不是标准的Java文件类。我已经建立了我的构建路径中的库,我基本上只是寻找一个如何调用这个方法的例子,因为我根本找不到在他们的网站上实现它。 – user1978536 2013-03-14 21:15:02
我修改了答案 – DrinkJavaCodeJava 2013-03-14 21:51:35
对于“Drive”参数,您确定您不是指“Driver”?我无法在Drive类中找到任何API。 – DrinkJavaCodeJava 2013-03-14 20:26:52
@DrinkJavaCodeJava不是,它是驱动器。该代码已从Google网站复制并粘贴。使用的import语句是com.google.api.services.drive.Drive; – user1978536 2013-03-14 20:32:52
你可能想看看这个答案。 http://stackoverflow.com/questions/14133026/how-to-download-a-file-from-google-drive-using-drive-api-java?rq=1 – 2014-01-31 01:07:51