Java 文本文件赢得';无法在SD卡中创建
我正在尝试使用FileWriter在手机的SD卡根目录中创建/写入文本文件,但无法创建该文件(/root/sdcard) 尝试使用getExternalStorageDirectory(),但它就是不起作用。我还将其添加到了应用程序标记之外的清单文件中: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”,但什么也没发生。也没
<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
);
}
}