• 注册
当前位置:1313e > 默认分类 >正文

android打开uri,来自uri的Android打开文件输入流

我正试图通过将文件从移动应用程序复制到运行在Windows上的服务器应用程序来上传文件。我使用文件选择器让用户选择文件:public void openFile(View view) {

Intent intent = new Intent();

intent.setType("*/*");

intent.setAction(Intent.ACTION_GET_CONTENT);

startActivityForResult(Intent.createChooser(intent, "Select file"), LEARN_TREE);

}

然后我从OnActivityResult的意图获得了uri。这里的第一个问题是为什么它将一个名为“servo.dat”的文件显示为数字(在本例中显示为“5889”)?

之后,我将uri作为一个额外值放入另一个意图中,并使用该意图启动另一个activity。在第二个activity中,我检索URI。现在我想使用FileInputStream从我的文件中读取字节,以便将它们写入从Socket.getOutputStream()创建的ObjectOutputStream。这是不起作用的地方。基本上就是这里提供的路径FileInputStream fis = new FileInputStream(uri.getPath());

是不正确的。如果我在我的设备上检查文件位置是download/servo.dat,应用程序中的Uri显示为download/5889,而我尝试使用网上找到的UriUtils库检索的绝对路径显示为storage/emulated/0/download/servo.dat,但这个文件在我的手机上实际上并不存在。

我认为这并不是很难,但我感到困惑,因为我是新的安卓应用程序开发和安卓本身,请帮助!

我对任何好的解决方案都持开放态度,我在网上看到ContentResolver类应该很有帮助,但我没有设法理解如何使用它:

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录