2

開くファイルを選択できる Java フォームがあります。私はそのファイルを持っています:

File my_file = ...

ファイルを別の名前で保存できるようにしたい。「File my_file」を使用してどのように行うことができますか?

私は試した:

File current_file = JPanel_VisualizationLogTab.get_File();
String current_file_name = current_file.getName();
//String current_file_extension = current_file_name.substring(current_file_name.lastIndexOf('.'), current_file_name.length()).toLowerCase();
FileDialog fileDialog = new FileDialog(new Frame(), "Save", FileDialog.SAVE);
fileDialog.setFile(current_file_name);
fileDialog.setVisible(true);

しかし、それはファイルを保存しません。

4

4 に答える 4

3

Apache Commons IOこのタスクを簡単にするために、ライブラリを使用することをお勧めします。このライブラリを使用すると、FileUtilsファイルIOを処理するための多くのヘルパー関数を提供する便利なクラスを使用できます。copy(File file, File file)機能に興味があると思います

try{
    File current_file = JPanel_VisualizationLogTab.get_File();
    File newFile = new File("new_file.txt");
    FileUtils.copyFile(current_file, newFile);
} catch (IOException e){
    e.printStackTrace();
}

ドキュメンテーション

于 2012-11-26T10:42:34.280 に答える
2

別の名前でコピーしたい場合は、Google経由でこのコードを見つけました

public static void copyFile(File in, File out) throws IOException {
    FileChannel inChannel = new FileInputStream(in).getChannel();
    FileChannel outChannel = new FileOutputStream(out).getChannel();
    try {
        inChannel.transferTo(0, inChannel.size(), outChannel);
    } catch (IOException e) {
        throw e;
    } finally {
        if (inChannel != null)
            inChannel.close();
        if (outChannel != null)
            outChannel.close();
    }
} 

今、あなたはそれを呼び出すことができます

    File inF = new File("/home/user/inputFile.txt");
    File outF = new File("/home/user/outputFile.txt");
    copyFile(inF, outF); 

両方のファイルが存在することが重要です。そうでない場合、例外が発生します

于 2012-11-26T13:42:10.573 に答える
1

ファイル名の名前を変更できます。
使用する:

myfile.renameTo("neeFile")
于 2012-11-26T10:41:35.283 に答える
0

renameTo(new File("whatever you want"));ファイルオブジェクトに対して呼び出されるメソッドがあります

于 2012-11-26T10:43:12.637 に答える