读取 DropBox 文本文件

Reading a DropBox Text File

我有一个 android 应用程序可以将图像和文本文件加载到 Dropbox 中。我已经弄清楚了身份验证和上传过程。

现在,使用同一个经过身份验证的会话,我想读取其中一个上传的文本文件(以查找更改)。我找到了一个下载示例,但这意味着将其写入本地 SD,然后在那里读取……效率不高(部分原因是需要额外的 android 许可)。

我检查过 Dropbox's v2 documentation and there do seem to be a bunch of read calls but I can't, for the life of me, figure out how to use them. The helpful Android-Dropbox examples 似乎也没有解决我的具体问题。我在 Whosebug 上也找不到任何 v2 示例。

当然,有人可以向我指出一个简单的示例,它提供了一个很好的 InputStream。

经过大量工具开发后,这里有一些有用的东西

    String my_link = null;
    URL my_url = null;
    URLConnection conn = null;
    BufferedReader reader = null;
    try {
        my_link = my_DbxClient.files().getTemporaryLink("/" + my_File).getLink();
        my_url = new URL (my_link);
        conn = my_url.openConnection();
        reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    } catch (DbxException e) {
        e.printStackTrace();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

您可以使用 the Dropbox Java SDK download method to get file contents directly. There's an example of using that in the example app here。该示例直接写入 FileOutputStream.

听起来你只是想要一个 InputStream,看起来像这样:

DbxClientV2 client = new DbxClientV2(config, ACCESS_TOKEN);

String remotePath = "/test.txt";  // the path to the file you want to download
InputStream fileInputStream = null;
try {
    fileInputStream = client.files().download(remotePath).getInputStream();
    // use `fileInputStream` as desired
} catch (DbxException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}