我选择了使用文件
File file = fileChooser.getSelectedFile();
现在我想在用户单击保存按钮时将用户选择的这个文件写入另一个位置。如何使用摇摆来实现?
要选择您需要类似的文件,
JFileChooser open = new JFileChooser();
open.showOpenDialog(this);
selected = open.getSelectedFile().getAbsolutePath(); //selected is a String
...并保存副本,
JFileChooser save = new JFileChooser();
save.showSaveDialog(this);
save.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
tosave = fileChooser.getSelectedFile().getAbsolutePath(); //tosave is a String
new CopyFile(selected,tosave);
... copyFile 类将类似于,
public class CopyFile {
public CopyFile(String srFile, String dtFile) {
try {
File f1 = new File(srFile);
File f2 = new File(dtFile);
InputStream in = new FileInputStream(f1);
OutputStream out = new FileOutputStream(f2);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
System.out.println("File copied.");
} catch (FileNotFoundException ex) {
System.out.println(ex.getMessage() + " in the specified directory.");
System.exit(0);
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
也看看这个问题:How to save file using JFileChooser? #MightBeHelpfull
Swing 只会给你位置/文件对象。您将不得不自己编写新文件。
要复制文件,我将向您指出这个问题:在 Java 中复制文件的标准简洁方法?
将文件读入 aInputStream
然后将其写出到OutputStream
.
如果您使用的是 JDK 1.7,则可以使用java.nio.file.Files类,它提供了几种复制方法来将文件复制到给定的命运。