【问题标题】:Correct file path of assets android资产android的正确文件路径
【发布时间】:2015-04-14 06:16:42
【问题描述】:

我正在尝试访问我的资产文件夹的文件路径,但由于某种原因,我无法访问它并且它会创建一个错误(无法启动活动 ComponentInfo,主机名可能不为空)。正确的语法应该是什么?

这是我的代码:

 String xml = parser.getXmlFromUrl("file:///android_assets/music.xml"); 

这是我的文件位置:

我做得对吗?还是我的语法不正确?

【问题讨论】:

  • 试试这个 String xml = parser.getXmlFromUrl("music.xml");

标签: android file assets


【解决方案1】:

试试这个,在那个文件上打开一个输入流。

InputStreamReader is= new InputStreamReader(
                context.getAssets().open("abc.xml"));

然后打开然后

    int length = is.available();
    byte[] data = new byte[length];
    is.read(data);
  String xmlString = new String(data);

希望对你有帮助

【讨论】:

    【解决方案2】:

    也许

    AssetManager assetManager = getAssets();
    InputStream input = assetManager.open(fileName);
    

    读取文件后呢?

    【讨论】:

      【解决方案3】:

      尝试使用文件描述符作为

       AssetFileDescriptor descriptor = getAssets().openFd("myfile.txt");
       FileReader reader = new FileReader(descriptor.getFileDescriptor());
      

      【讨论】:

        【解决方案4】:

        请使用此代码,它的文本文件和 xml 文件的工作代码。

        public String readFromAssetsFolder(String fileName) {
                String  readValue = "";
                InputStream fileInputStream = null;
                InputStreamReader inputStreamReader = null;
                BufferedReader input = null;
                try {
                    fileInputStream = getResources().getAssets()
                            .open(fileName, Context.MODE_WORLD_READABLE);
                    inputStreamReader = new InputStreamReader(fileInputStream);
                    input = new BufferedReader(inputStreamReader);
                    String line = "";
                    while ((line = input.readLine()) != null) {
                        readValue = readValue+ line;
                    }
                } catch (Exception e) {
                    e.getMessage();
                } finally {
                    try {
                        if (inputStreamReader != null)
                            inputStreamReader.close();
                        if (fileInputStream != null)
                            fileInputStream.close();
                        if (input != null)
                            input.close();
                    } catch (Exception e2) {
                        e2.getMessage();
                    }
                }
                return readValue;
            }
        

        【讨论】:

          猜你喜欢
          • 2023-03-31
          • 2011-06-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-15
          相关资源
          最近更新 更多