1

我知道在 Android 中我可以通过这种方式从磁盘读取文件:

Uri uri = Uri.parse("file:///data/data/com.example.mytest.mytest/test.txt");
InputStream stream = getContentResolver().openInputStream(uri);
int i;
while ((i = stream.read()) != -1) {
  Log.i("@@@", "znak: " + i);
}

但是,我不知道它是如何工作的。Android 中是否存在一些使用“文件”方案的内容提供程序?但是如何 - 我认为所有内容提供者的 URI 方案都必须有“内容”方案?

4

1 回答 1

2

ContentResolver并直接openInputStream()处理file:方案。这openInputStream().

另外,不要对路径进行硬编码。您Uri在数百万台设备上都错了:

  • 在 Android 4.2+ 平板电脑和 Android 5.0+ 手机上,用于访客和其他辅助帐户

  • 在 Android M 设备上,如果用户“采用”可移动存储并将应用程序移至其中

于 2015-06-03T11:36:55.973 回答