当前位置: 首页 > 知识库问答 >
问题:

将URI放入FileInputStream

宗涵蓄
2023-03-14

对于分配,我们需要能够保存自定义文件类型,然后能够再次读回。我想我可以使用FileInputStream类,这样我就可以轻松地使用myInStream。read()从文件中获取所需的所有信息。但是,我在将文件放入FileInputStream时遇到了一个问题。我能够获取URI,但我用来获取URI的方法似乎使URI类型与文件类不兼容。在开始阅读之前,我的onActivityResult()中有以下代码:

    Uri pickedFile = data.getData();
    File myFile = new File(pickedFile);
    FileInputStream inStream = new FileInputStream(myFile);

第二行写着“无法解析构造函数的文件(android.net.Uri)”,所以我假设我必须将Uri转换成不同的格式,但我不知道该怎么做。任何帮助都将不胜感激!

编辑:作为将来的参考,固定代码看起来像这样:Uri picedFile=data.getData(); InputStream inStream=getContentResolver(). openInputStream(picedFile);

共有2个答案

郑佐
2023-03-14

我假设我必须将URI转换为不同的格式

不可以。Uri是某些内容的不透明句柄,例如https://stackoverflow.com/questions/42893406/putting-a-uri-into-a-fileinputstream。它不是一个文件。

您不会显示您的Uri来自何处。根据命名的picked文件,我猜您正在使用操作获取内容操作打开文档。在这两种情况下,用户都不会选择文件。

如果我对Uri来自何处的猜测是正确的,那么Uri将具有文件方案或内容方案。您可以在任一类型的Uri上获得InputStream,方法相同:在ContentResolver上调用openInputStream()。通过在上下文上调用getContentResolver(),例如您的活动服务,可以获得ContentResolver

陈俊郎
2023-03-14

我是这样做的:

FileInputStream importdb = new FileInputStream(_context.getContentResolver().openFileDescriptor(uri, "r").getFileDescriptor());
 类似资料:
  • 所以现在我有一个简单的datalist下拉菜单,我想改变它的CSS,以便样式与网站上的其他字段匹配。然而,我是一个网页设计的noob,我有点困惑,因为要完成这个过程。 我有CSS在那里以及imo这将是最容易的内联CSS,但如果有人能指导我通过这将是伟大的感谢!

  • 问题内容: 我想将单个JComboBoxes放入JTable的每个单元格中。即。每个单元格的JComboBox内容都不相同。 我基本上希望能够仅调用以下代码以将JComboBox行添加到JTable中。有人知道吗?谢谢 我可以找到的最接近的示例代码如下。但这是针对单个列的JComboBox内容相同的地方。不是我需要的解决方案。 哪里 问题答案: 最简单的方法是实现自己的TableModel 将此加

  • 问题内容: 按照标题,将HTML放入JSON是否被视为一种好习惯?我需要这样做的原因是因为我想要一个自定义下拉列表,其中列表来自用户输入,而json看起来像这样: 并且我有以下foreach(请记住,这是我的代码的精简版,已经进行了验证,但是出于这个问题,我将其取出) 我担心的是,可能会有一些特殊字符可能会破坏JSON字符串。请帮忙。 问题答案: 您不会是第一个这样做的人,当然也不会是最后一个。

  • 问题内容: 我正在使用新的Python Requests库发出http请求。我从服务器获取cookie作为文本。如何将其中的cookie变成一个? 问题答案: 这个问题让我感到困惑。请求库将为您将Cookie放入罐子中。 URL的第一个请求将填充该jar。第二个请求会将cookie发送回服务器。标准库的urllib模块cookielib也是如此。(当前可用于2.x版本的文档)

  • 问题内容: 对于请求和JSON,我是一个菜鸟。在我的应用程序内部,我发送到服务器并取回东西,因此我可以使用它。我尝试查找不同的东西,但似乎并没有真正找到我想要的东西。所以我找回了似乎格式化为JSON的内容。我想知道如何将其放入NSMutable数组中。我获取此JSON的方法是使用AFNetworking的AFJSONRequestOperation。 我的回应看起来像这样。 问题答案: 如果您的J

  • 问题内容: 我当前正在从文本文件中读取200万行,如上一个问题中所述 。Java读取200万行文本文件的最快方法 现在,我将这些信息存储到HashMap中,并希望通过TreeMap对其进行排序,因为我想使用ceilingkey。以下方法正确吗? 问题答案: HashMap hashMap = new HashMap (); TreeMap treeMap = new TreeMap (); tre