Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 文本文件赢得';无法在SD卡中创建_Java_Android_String_File_Android Sdcard - Fatal编程技术网

Java 文本文件赢得';无法在SD卡中创建

Java 文本文件赢得';无法在SD卡中创建,java,android,string,file,android-sdcard,Java,Android,String,File,Android Sdcard,我正在尝试使用FileWriter在手机的SD卡根目录中创建/写入文本文件,但无法创建该文件(/root/sdcard) 尝试使用getExternalStorageDirectory(),但它就是不起作用。我还将其添加到了应用程序标记之外的清单文件中: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 我希望在SD卡的目录中创建一个文件“test.txt”,但什么也没发生。也没

我正在尝试使用FileWriter在手机的SD卡根目录中创建/写入文本文件,但无法创建该文件(/root/sdcard)

尝试使用getExternalStorageDirectory(),但它就是不起作用。我还将其添加到了应用程序标记之外的清单文件中:

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

我希望在SD卡的目录中创建一个文件“test.txt”,但什么也没发生。也没有错误,文件只是不想被创建。

通过在activity onCreate方法中调用以下命令进行修复:

    public static void verifyStoragePermissions(Activity activity) {
    // Check if we have write permission
    int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);

    if (permission != PackageManager.PERMISSION_GRANTED) {
        // We don't have permission so prompt the user
        ActivityCompat.requestPermissions(
                activity,
                PERMISSIONS_STORAGE,
                REQUEST_EXTERNAL_STORAGE
        );
    }
}

micro SD卡现在在Android设备中使用时是只读的。getExternalStorageDirectory()与可移动micro SD卡无关。请告诉我您想要什么。
file.createNewFile()
检查返回值:
如果(!file.createNewFile()){Toast(无法创建文件..);返回false;}
文件file=new文件(Environment.getExternalStorageDirectory().getAbsolutePath()+“/test.txt”)更好:
文件File=新文件(Environment.getExternalStorageDirectory(),“test.txt”)
void writeToFile(字符串内容)
使其返回一个值:
boolean writeToFile(字符串内容)
并在调用时检查。“也没有错误”--您怎么知道?您正在忽略所有错误。添加
Log.e(“ShorowitzApp”,“文件I/O中的异常”,e)
到您的
catch
块,然后查看Logcat以查看堆栈跟踪。除了blackapp的所有评论之外,请注意,在Android 10+上,默认情况下,您没有访问外部或可移动存储的权限。请使用
ACTION\u CREATE\u DOCUMENT
并让用户决定用户希望您将用户数据放在用户设备上的位置。
    public static void verifyStoragePermissions(Activity activity) {
    // Check if we have write permission
    int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);

    if (permission != PackageManager.PERMISSION_GRANTED) {
        // We don't have permission so prompt the user
        ActivityCompat.requestPermissions(
                activity,
                PERMISSIONS_STORAGE,
                REQUEST_EXTERNAL_STORAGE
        );
    }
}