android studio 3.7 中创建文件和出现open failed: EACCES (Permission denied)的错误

错误

open failed: EACCES (Permission denied)
打开失败:EACCES(权限被拒绝)

添加权限

找到manifest.xml文件,复制到标签中

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

参考

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
    tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE"
    tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />

创建写入文件代码,运行程序。

private static String fileName = Environment.getExternalStorageDirectory()+"/hello.txt";
//结果为fileName=/mnt/sdcard/hello.txt
public void writeFile(String filepath,String text) {
    File file =new File(filepath);//传入一个文件路径给对象file
    FileOutputStream write=null;

    try {
        if(!file.exists()) {

            file.createNewFile();//创建文件,路径不存在返回false

            System.out.println("文件创建成功");
            //file.mkdir();       //创建文件夹
        }else {
            System.out.println("文件已存在!写入"+text);
        }

        write=new FileOutputStream(file,true);//指明true参数在写入数据时不覆盖原有数据
        write.write(text.getBytes("utf-8"));//将字符串转换为编码为utf—8字节数组Byte[] byte=text.getBytes("utf-8"),write.write(byte);
        write.write("\n".getBytes());//实现换行

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally {
        try {
            if(write!=null) {
                write.flush();//关闭缓冲区
                write.close();//关闭流对象
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

android studio 3.7 中创建文件和出现open failed: EACCES (Permission denied)的错误_第1张图片

查看/mnt/sdcard/目录,根目录下有一个hello.txt文件,说明创建写入成功。

你可能感兴趣的:(android studio 3.7 中创建文件和出现open failed: EACCES (Permission denied)的错误)