Android byte[ ] 保存本地文件

粘贴下面方法直接调用即可

  public File getFileFromBytes(byte[] b, String outputFile) {
        BufferedOutputStream stream = null;
        File file = null;
        try {
            file = new File(outputFile);
            FileOutputStream fstream = new FileOutputStream(file);
            stream = new BufferedOutputStream(fstream);
            stream.write(b);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stream != null) {
                try {
                    stream.flush();
                    stream.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        }
        return file;
    }

方法调用如下路径不需要权限

 String s = getExternalFilesDir("66").getAbsolutePath();
        getFileFromBytes(bytes, s + System.currentTimeMillis() + ".jpg");

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个简单的实现方式: ```java public class SaveFileTask extends AsyncTask<String, Void, Boolean> { private Context mContext; private String mFileName; private InputStream mInputStream; public SaveFileTask(Context context, String fileName, InputStream inputStream) { mContext = context; mFileName = fileName; mInputStream = inputStream; } @Override protected Boolean doInBackground(String... params) { boolean result = false; try { File dir = mContext.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS); if (dir != null && !dir.exists()) { dir.mkdirs(); } File file = new File(dir, mFileName); FileOutputStream fos = new FileOutputStream(file); byte[] buffer = new byte[1024]; int len; while ((len = mInputStream.read(buffer)) != -1) { fos.write(buffer, 0, len); } fos.flush(); fos.close(); result = true; } catch (IOException e) { e.printStackTrace(); } finally { if (mInputStream != null) { try { mInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } @Override protected void onPostExecute(Boolean result) { if (result) { Toast.makeText(mContext, "文件保存到最近文件夹中", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(mContext, "保存文件失败", Toast.LENGTH_SHORT).show(); } } } ``` 调用方式: ```java new SaveFileTask(this, "file_name", inputStream).execute(); ``` 其中,`inputStream`是接口返回的文件流,`file_name`是文件名。以上代码会将文件保存到最近文件夹中,如果该文件夹不存在,则会自动创建。保存成功后会弹出提示。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值