android 获取assets内的文件转File

//调用方法
 String dirPath = ContextCompat.getExternalFilesDirs(MainActivity.this,
                Environment.DIRECTORY_DCIM)[0].getAbsolutePath() + File.separator + "PrintFile";
        try {
            copyAssetToFile("庭审系统安卓端操作手册.pdf",dirPath,"/庭审系统安卓端操作手册.pdf");
        } catch (IOException e) {
            Log.e("tyl","IOException="+e.getMessage());
            e.printStackTrace();
        }
//读取到本地file文件
 File file = new File(dirPath+"/庭审系统安卓端操作手册.pdf");
/**
     * 复制assets下的文件到本地文件
     * assetName assets内的文件名称
     * savepath 本地文件夹路径
     * savename 保存的文件名称需带后缀文件类型 如.pdf
     * @throws IOException
     */
    public void copyAssetToFile(String assetName, String savepath, String savename) throws IOException {
        InputStream myInput;
        File dir = new File(savepath);
        if (!dir.exists()) {
            dir.mkdirs();
        }
        File dbf = new File(savepath + savename);
        if (dbf.exists()) {
            dbf.delete();
        }
        String outFileName = savepath + savename;
        OutputStream myOutput = new FileOutputStream(outFileName);
        myInput = this.getAssets().open(assetName);
        byte[] buffer = new byte[1024];
        int length;
        while ((length = myInput.read(buffer)) > 0) {
            myOutput.write(buffer, 0, length);
        }
        myOutput.flush();
        myInput.close();
        myOutput.close();
    }

你可能感兴趣的:(android 获取assets内的文件转File)