安卓10 sd卡读写

1、AndroidManifest.xml中添加权限

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

2、AndroidManifest.xml中application节点添加

android:requestLegacyExternalStorage="true"

3、代码中动态申请权限

Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE

4、读写代码

    public static void writeToFile(byte[] bytes, String path) {
    
    
        String SDCardRoot = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator;
        path = SDCardRoot + path;
        File f = new File(path);
        if (!f.getParentFile().exists())
            f.getParentFile().mkdirs();
        if (bytes!=null) {
    
    
            try (FileOutputStream out = new FileOutputStream(path))
            {
    
    
                out.write(bytes);
            } catch (IOException e) {
    
    
                e.printStackTrace();
            }
        }
    }

    public static byte[] readFromFile(String path) {
    
    
        String SDCardRoot = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator;
        path = SDCardRoot + path;
        File f = new File(path);
        if (!f.isFile() || !f.exists())
            return null;
        long len = f.length();
        try (InputStream in = new FileInputStream(path))
        {
    
    
            byte b[]=new byte[(int) len];
            in.read(b);
            return b;
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
        return null;
    }

猜你喜欢

转载自blog.csdn.net/qsyjrz206/article/details/112245892