【问题标题】:How to write files to assets folder or raw folder in android?如何将文件写入android中的资产文件夹或原始文件夹?
【发布时间】:2010-09-21 13:15:47
【问题描述】:

我正在开发一些应用程序,我必须从某个 http 位置更新资产/原始文件夹运行时中存在的一些文件。

谁能帮我分享如何在资产或原始文件夹中写入文件?

【问题讨论】:

  • assets/raw 文件夹在手机上不存在。它们被编译到包中

标签: android


【解决方案1】:

这是不可能的。这是不可能的。

【讨论】:

  • 实际上,我是在视图故障的情况下完成的(webview 显示了我的 java 源代码,然后它从资产加载的 html 文件包含我的 java 源代码,没有空格或任何东西)。我目前正在寻找如何重新创建它。
【解决方案2】:

您不能在资产中写入 JSON 文件。如前所述,资产是只读的。但是您可以将资产(json 文件/ assets 中的任何其他内容)复制到移动设备的本地存储中,然后从本地存储中编辑(写入/读取)。提供更多存储选项,例如共享首选项(适用于小数据)和 sqlite 数据库(适用于大数据)。

【讨论】:

    【解决方案3】:

    您不能将数据写入 asset/Raw 文件夹,因为它是打包的 (.apk) 且大小不可扩展。

    如果你的应用需要从服务器下载依赖文件,你可以去android提供的APK扩展文件(http://developer.android.com/guide/market/expansion-files.html)。

    【讨论】:

      【解决方案4】:

      为什么不更新本地文件系统上的文件呢? 您可以将文件读/写到您的应用程序沙盒区域。

      http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

      您可能想要研究的其他替代方法是共享参数和使用缓存文件(所有内容都在上面的链接中描述)

      【讨论】:

        【解决方案5】:

        解决同一问题的另一种方法可能会对您有所帮助 在应用程序的私有上下文中读写文件

                         String NOTE = "note.txt";  
                         private void writeToFile() {
                try {
                 OutputStreamWriter out = new OutputStreamWriter(openFileOutput(
                        NOTES, 0));
        
                 out.write("testing");
                 out.close();
                 }
        
                catch (Throwable t) {
                Toast.makeText(this, "Exception: " + t.toString(), 2000).show();
                }
                     }
        
        
                   private void ReadFromFile()
              {
                try {
                InputStream in = openFileInput(NOTES);
                if (in != null) {
                    InputStreamReader tmp = new InputStreamReader(in);
                    BufferedReader reader = new BufferedReader(tmp);
                    String str;
                    StringBuffer buf = new StringBuffer();
                    while ((str = reader.readLine()) != null) {
                        buf.append(str + "\n");
                    }
                    in.close();
                    String temp = "Not Working";
                    temp = buf.toString();
                    Toast.makeText(this, temp, Toast.LENGTH_SHORT).show();
                }
            } catch (java.io.FileNotFoundException e) {
                // that's OK, we probably haven't created it yet
            } catch (Throwable t) {
                Toast.makeText(this, "Exception: " + t.toString(), 2000).show();
            }
        }
        

        【讨论】:

          猜你喜欢
          • 2011-03-03
          • 1970-01-01
          • 1970-01-01
          • 2016-12-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多