写入SDCard文件无一例外地失败

时间:2011-08-27 09:33:20

标签: android android-sdcard

我已经经历过关于SDcard文件写入问题的多个线程,但是看不出能帮到我的答案。

  1. 我用过
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    

    在我的节点清单中。

    2.以下代码创建一个文件但不写入它。 Writer永远不会抛出异常。当我回到SDCard并看到创建的文件是0 kb。 (这是由于创造新的功能)
    3. SDCard显示使用这些权限创建的文件---- rwxr-x(写不存在其他人)
    4.仿真器或设备上的行为是相同的华硕垫或Acer Iconia设备。

    应用程序在Android应用程序中使用SDCard上的内容创建文件的常规方式是什么?

    if(isExternalStorageWritable()) {
        File testFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath(),Filename);
        try {
            if (testFile.createNewFile()) {
                Log.i(TAG + ": createSdcardFile","Empty file on external storage created");
                BufferedWriter out = new BufferedWriter(new OutputStreamWriter(
                       openFileOutput(Filename, MODE_APPEND)));
                out.write(Content);
                out.close();
                Log.i(TAG + ": createSdcardFile","Content to new file created");
                created = true;
            }
        } catch(IOException e) {
            Log.e(TAG,"Unable to create/write to new file on external storage. Terminating testCDMReadPositive");
            Log.e(TAG,e.getMessage());
        }
    }
    

    4.使用模式 MODE_WORLD_WRITABLE 给出相同的结果,即SDCard上的0kb文件


    5.具有在externalstorage(/ mnt / sdcard)上编写文件经验的任何人都知道如何执行此操作。任何帮助或方向,高度赞赏。谢谢

1 个答案:

答案 0 :(得分:1)

也许是一个愚蠢的建议,但你在新的运行之前删除了旧的测试文件吗?因为if子句会阻止写入文件(如果文件已经存在)。