写入文件内部存储 Android

Writing to File Internal Storage Android

鉴于此代码:

final String dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "/";
    String file = dir + "info.txt";
    File newfile = new File(file);


        //Environment.getExternalStorageDirectory().toString()= /storage/emulated/0

String msgData="p1000";
        FileOutputStream outputStream;

        try {
            newfile.createNewFile();

            outputStream = openFileOutput(file, Context.MODE_PRIVATE);
            outputStream.write(msgData.getBytes());
            outputStream.close();
        } catch (Exception e) {
            e.toString();
            //e.printStackTrace();
        }

当我打开文件 /storage/emulated/0/Documents/info.text 时,我发现它是空的,而它应该有字符串 "p1000";

这是为什么? 注意:我没有外部存储(外置sd卡)。

谢谢。

您的清单中是否有 WRITE_EXTERNAL_STORAGE 权限?

试试这个:FileOutputStream outputStream = new FileOutputStream(file);

如果您想使用内部存储,则不应传递指向外部存储(大致为 SD 卡)的路径。在你的 try-catch 块中改用这一行:

outputStream = openFileOutput("info.txt", Context.MODE_PRIVATE);

文件将保存在Context.getFilesDir()返回的目录中。