在我的应用程序中,我想用不同的名称保存某个文件的副本(这是我从用户那里得到的)

我真的需要打开文件的内容并将其写入另一个文件吗?

最好的方法是什么?


当前回答

简单易行的方法!

import android.os.FileUtils;

try (InputStream in = new FileInputStream(sourceFile); 
     OutputStream out = new FileOutputStream(destinationFile) ){
                
     FileUtils.copy(in, out); 

}catch(Exception e){
     Log.d("ReactNative","Error copying file: "+e.getMessage());
}

其他回答

这在Android O (API 26)上很简单,如你所见:

  @RequiresApi(api = Build.VERSION_CODES.O)
  public static void copy(File origin, File dest) throws IOException {
    Files.copy(origin.toPath(), dest.toPath());
  }

现在回答可能太迟了,但最方便的方法是使用

FileUtils's

文件srcFile,文件destFile

这就是我所做的

`

private String copy(String original, int copyNumber){
    String copy_path = path + "_copy" + copyNumber;
        try {
            FileUtils.copyFile(new File(path), new File(copy_path));
            return copy_path;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

`

在kotlin中你可以用

file1.copyTo(file2)

file1是原始文件的对象,而file2是要复制到的新文件的对象

简单易行的方法!

import android.os.FileUtils;

try (InputStream in = new FileInputStream(sourceFile); 
     OutputStream out = new FileOutputStream(destinationFile) ){
                
     FileUtils.copy(in, out); 

}catch(Exception e){
     Log.d("ReactNative","Error copying file: "+e.getMessage());
}

在kotlin中,只需:

val fileSrc : File = File("srcPath")
val fileDest : File = File("destPath")

fileSrc.copyTo(fileDest)