を使用してファイルを選択しました
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());
}
}
}
この質問もご覧ください:JFileChooserを使用してファイルを保存するには? #MightBeHelpfull
Swing は、場所/ファイル オブジェクトを提供するだけです。新しいファイルを自分で作成する必要があります。
ファイルをコピーするには、次の質問を指摘します: Java でファイルをコピーするための標準的な簡潔な方法は?
ファイルをに読み込んでInputStream
から、に書き込みますOutputStream
。
JDK 1.7を使用している場合は、java.nio.file.Filesクラスを使用できます。このクラスは、ファイルを特定の宛先にコピーするためのいくつかのコピーメソッドを提供します。