Android 将Uri存储到本地文件,并获取路径

时间:2025-03-09 08:25:30
public class CopyFileByUri { public static String getPath(Context context, Uri srcUri) { String path=context.getFilesDir()+"/";//获取本地目录 File file=new File(path); try { InputStream inputStream = context.getContentResolver().openInputStream(srcUri);//context的方法获取URI文件输入流 if (inputStream == null) return "null"; OutputStream outputStream = new FileOutputStream(file); copyStream(inputStream, outputStream);//调用下面的方法存储 inputStream.close(); outputStream.close(); return path;//成功返回路径 } catch (Exception e) { e.printStackTrace(); return "null";//失败返回路径null } } private static void copyStream(InputStream input, OutputStream output){//文件存储 final int BUFFER_SIZE = 1024 * 2; byte[] buffer = new byte[BUFFER_SIZE]; BufferedInputStream in = new BufferedInputStream(input, BUFFER_SIZE); BufferedOutputStream out = new BufferedOutputStream(output, BUFFER_SIZE); int count = 0, n = 0; try { while ((n = in.read(buffer, 0, BUFFER_SIZE)) != -1) { out.write(buffer, 0, n); count += n; } out.flush(); out.close(); in.close(); } catch (IOException e) { e.printStackTrace(); } } }