我有一个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);
但是这不保存文件。
答案 0 :(得分: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();
}
答案 1 :(得分:2)
如果你想用不同的名字复制它,我通过谷歌找到了这段代码
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);
两个文件都存在非常重要,否则就会引发异常
答案 2 :(得分:1)
您可以重命名文件名 使用:
myfile.renameTo("neeFile")
答案 3 :(得分:0)
文件对象有一个名为renameTo(new File("whatever you want"));
的方法