当前位置: 首页 > 面试题库 >

数据目录在Android中没有读/写权限

施飞鸿
2023-03-14
问题内容

我正在使用Android 1.5,我的数据目录没有读/写权限

System.out.println("DAta can write??--->"+Environment.getDataDirectory().canWrite());
System.out.println("DAta can read??--->"+Environment.getDataDirectory().canRead());

因此,请建议我如何为数据目录提供权限。

我想要做的是创建一个文件,并在模拟器的数据存储中向其中添加一些内容,如下所示

private void writeToSDCard() {
        try {

            File lroot = Environment.getDataDirectory();

            if (lroot.canWrite()){
                File lfile = new File(lroot, "samplefile.txt");
                FileWriter lfilewriter = new FileWriter(lfile);
                BufferedWriter lout = new BufferedWriter(lfilewriter);
                lout.write("XXXXXXXXXXXXXXXXXX");
                lout.close();
            }
        } catch (IOException e) {
            Log.e(m_cTAG, "Could not write file " + e.getMessage());
        }
    }

问题答案:

应用程序将永远无权对其进行写入。

Context.getFilesDir()方法将返回应用程序应将文件写入的目录。会是这样的/data/data/com.yourdomain.YourApp/files

如果要写入手机存储中的文件,请使用Context.openFileOutput()方法

如果您想要SD卡的路径,请使用Environment.getExternalStorageDirectory()method。要写入SDCard,您需要通过向清单中添加以下内容来为您的应用程序授予适当的权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

如果要写入SDCard,则还需要使用getExternalStorageState()方法检查其状态。

如果您要存储与应用程序相关的小文件,则这些文件可以进入手机的存储空间,而不是SD卡,因此请使用Context.openFileOutput()和Context.openFileInput()方法。

因此,在您的代码中考虑以下内容:

OutputStream os = openFileOutput("samplefile.txt", MODE_PRIVATE);
BufferedWriter lout = new BufferedWriter(new OutputStreamWriter(os));


 类似资料:
  • 我正在尝试将文本文件复制到hdfs位置。 我面临访问问题,所以我尝试更改权限。 但我无法更改以下相同的面临错误:

  • 问题内容: 我正在使用MySql DB,并且希望能够读取和写入unicode数据值。例如,法语/希腊语/希伯来语值。 我的客户端程序是C#(.NET Framework 3.5)。 如何配置数据库以允许unicode?以及如何使用C#从MySql读取/写入Unicode值? 更新日期:09年9月7日 好的,因此我的架构,表和列设置为’utf8’+排序规则’utf8_general_ci’。打开连接

  • 问题内容: 我的小型实用程序应用程序通过GUI文件选择器要求用户提供输出目录。然后,经过一些处理,它会在此输出目录中创建很多文件。 我需要检查应用程序是否具有写访问权,以便它通知用户并且不继续进行处理(这可能需要很长时间) 我的第一次尝试是 java.io.File* 的 canWrite() 方法。但这是行不通的,因为它处理目录条目本身而不是其内容。我已经看到Windows XP文件夹的至少一个

  • 我是新的谷歌云和BigQuery 我有一个包含2个项目的云实例。一个是计算引擎项目,另一个是BigQuery项目。我可以成功地从计算引擎项目中获取访问令牌和刷新令牌。但是,当我尝试访问BigQuery项目时,出现以下错误: xxxx@gmail.com在项目yyyy中没有bigquery.jobs.create权限 我在BigQuery中创建了数据集,将公共数据复制到每个数据集中。我也证实了这一点

  • 问题内容: 我想在我的项目中使用MS Access。我尝试与此代码集成。 通过使用此方法,我尝试从中获取所有表名。但我得到一个错误: java.sql.SQLException:无法读取[Microsoft] [ODBC Microsoft Access驱动程序]记录;对“ MSysObjects”没有读取权限。 请帮助我解决此错误。 问题答案: 要以读取权限连接MS Access,请按照以下步骤

  • 本文向大家介绍浅谈python对象数据的读写权限,包括了浅谈python对象数据的读写权限的使用技巧和注意事项,需要的朋友参考一下 面向对象的编程语言在写大型程序的的时候,往往比面向过程的语言用起来更方便,安全。其中原因之一在于:类机制。 类,对众多的数据进行分类,封装,让一个数据对象成为一个完整的个体,贴近现实生活,高度抽象化。但是,python对类的封装并不好,因为所有的属性和方法都是公开的,