Java (文件选择器) 保存文件

跳出保存的对话框之后,用户选择一个地方保存。而我们程序编写者,编写代码时候,如何得知用户保存时候输入的文件名。
我用:JFileChooser,我找不到方法。
而我有个同学,他用FileDialog,直接用了语句,String fileName = a.getDirectory() + a.getFile(),然后BufferedWriter buf = new BufferedWriter(new FileWriter(fileName));就解决了。这让我很无语
对于那同学的解法,我有2点疑惑:
1,JFileChooser应该比FileDialog更强大的,可是,我怎么就是找不到解法。
2,那同学解法里,调用的方法getFile(),读了API,解释是:获取此文件对话框的选定文件。这我就不懂了。如果“打开”对话器,调用这方法我可以理解,但是,“保存”?我不确定,因为我们根本没有选取,我们只是选了个地方,然后保存自己的文件。
PS:事后满意可以加分
最好能把我的2个问题都解释下。
我需要的是“保存”,不是“打开”

JFileChooser fd=new JFileChooser();
fd.showSaveDialog(null);
File f=fd.getSelectedFile();
System.out.println(f.getName());

疑惑解答:
1. JFileChooser.getSelectedFile()返回一个文件对象,调这个文件对象的getName()很容易得到用户输入的文件名。返回文件对象既包含了文件路径也包含了文件名,这也体现了Java面向对象的思想。
2. Java的文件对象在文件系统中是可以存在,也可不存在的,所以Java的文件对象有exists()、
createNewFile()、mkdir()等方法。所以文件保存对话框返回的文件对象不一定在文件系统实际存在,而仅仅是一串路径的表示。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-03
用getSelectedFile()方法,反回的是一个FILE对象。
如下是一个典型的例子,供参考:
public void actionPerformed(ActionEvent e) {
//Handle open button action.
if (e.getSource() == openButton) {
int returnVal = fc.showOpenDialog(FileChooserDemo.this);

if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
//This is where a real application would open the file.
log.append("Opening: " + file.getName() + "." + newline);
} else {
log.append("Open command cancelled by user." + newline);
}
} ...
}本回答被网友采纳
第2个回答  2010-12-03

兄弟,从图片上看看我做的一个小例子,你就会明白的!

第3个回答  2010-12-03
chooser.getCurrentDirectory().getAbsolutePath()
+chooser.getSelectedFile();
就可以得到保存文件的路径