无法在Android中写入外部SD卡

无法在Android中写入外部SD卡,android,io,android-sdcard,Android,Io,Android Sdcard,我正在尝试在外部SD卡文件夹中写入文件。即使在清单文件中设置了所需的权限,我也无法在外部SD卡上写入 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 另一方面,当我使用ES文件资源管理器尝试创建文件时,它会创建一个没有任何问题的文件。不要使用绝对路径String path=“/mnt/extsd/nit.txt”

我正在尝试在外部SD卡文件夹中写入文件。即使在清单文件中设置了所需的权限,我也无法在外部SD卡上写入

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

另一方面,当我使用ES文件资源管理器尝试创建文件时,它会创建一个没有任何问题的文件。

不要使用绝对路径
String path=“/mnt/extsd/nit.txt”环境获取外部存储目录路径。getExternalStorageDirectory().toString()

您应该能够调用Environment.getExternalStorageDirectory()获取SD卡的根路径,并使用该路径创建FileOutputStream。从这里开始,只需使用标准的java.io例程

File log = new File(Environment.getExternalStorageDirectory(), "your_file_name.txt");
    try {
        out = new BufferedWriter(new FileWriter(log.getAbsolutePath(), false));
        out.write("any data");

    } catch (Exception e) {

    }

不要忘记关闭数据流。

首先检查sd卡是否可用

String state = Environment.getExternalStorageState();
String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
if (Environment.MEDIA_MOUNTED.equals(state))
{
File folder = folder = new File(extStorageDirectory, "FolderName");
if(!folder.exists())
{
    folder.mkdir();//making folder
}
File file = new File(folder,"Filename");//making file
}

请尝试此代码,它在我的应用程序中工作。

尝试以下方式:
File dir=new File(Environment.getExternalStorageDirectory().toString()+“+java.io.File.separator+”nit.txt”);
不要硬编码您正在测试的API?是否有错误消息?错误消息是:打开失败:EACCES(权限被拒绝)minSdkVersion 15 targetSdkVersion 20I也有同样的问题。您解决过吗?环境。getExternalStorageDirectory()不提供外部SD卡的路径。它提供内部存储的路径,由制表符制造商映射为外部存储。环境。getExternalStorageDirectory().toString()正在给我/mnt/sdcard,这是内部存储的路径。请检查此环境。getExternalStorageDirectory()不提供外部SD卡的路径。它提供由制表符制造商映射为外部存储的内部存储的路径。因此,如果mobile没有挂载的SD卡supportEnvironment,则不希望写入文件。getExternalStorageDirectory()不提供外部SD卡的路径。它提供由制表符制造商映射为外部存储器的内部存储器的路径。
String state = Environment.getExternalStorageState();
String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
if (Environment.MEDIA_MOUNTED.equals(state))
{
File folder = folder = new File(extStorageDirectory, "FolderName");
if(!folder.exists())
{
    folder.mkdir();//making folder
}
File file = new File(folder,"Filename");//making file
}