Java 使用JFileChooser保存字符串
我正在用java做一个程序,就像记事本一样。因此,我已经保存下来了,它是有效的,下面是代码示例Java 使用JFileChooser保存字符串,java,swing,file-io,jfilechooser,notepad,Java,Swing,File Io,Jfilechooser,Notepad,我正在用java做一个程序,就像记事本一样。因此,我已经保存下来了,它是有效的,下面是代码示例 BufferedWriter writer = null; try { writer = new BufferedWriter(new FileWriter(link.getText())); writer.write(display.getText());
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter(link.getText()));
writer.write(display.getText());
} catch (Exception e1) {
e1.printStackTrace();
} finally {
try {
if (null != writer) {
writer.close();
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
无论如何,它的作用是,您在代码中看不到它,但它生成了一个JFrame,它有一个JTextField和一个JButton,您要做的是将链接放在JTextField(例如:C:\Users\Noah\Desktop\text.txt)中,并在您按save时保存。但我想用JFileChooser来实现这一点。有人能帮我吗
编辑:
解决方案:
JFileChooser fc = new JFileChooser("C:\\Users");
fc.showSaveDialog(frame); // frame is the JFrame (window)
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter(fc.getSelectedFile().getPath()));
writer.write(display.getText());
} catch (Exception e1) {
e1.printStackTrace();
} finally {
try {
if (null != writer) {
writer.close();
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
在我发布了这篇文章后,我就明白了这一点。你在谷歌有很多例子,这里是我保存xml文件的一些代码片段:
public void SaveMe(){
//Configure fileChooser
JFileChooser fc = new JFileChooser(lastOpenDir); // after 1st save store path to "lastOpenDir"
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
fc.setDialogTitle("Save only XML");
fc.removeChoosableFileFilter(fc.getFileFilter()); //remove the default file filter
FileFilter filter = new FileNameExtensionFilter("XML file", "xml");
fc.addChoosableFileFilter(filter); //add XML file filter
//show dialog
int returnVal = fc.showSaveDialog(appFrame);
if(returnVal == JFileChooser.APPROVE_OPTION){
File selectedDir = fc.getSelectedFile();
lastOpenDir=fc.getSelectedFile().getParent();
lastOpenFile = fc.getSelectedFile().getName();
if(selectedDir.isFile()){
String errorString = selectedDir.getPath()+" already exists.\nDo you want to replace it?";
Object[] options = {"Yes", "No"};
int n = JOptionPane.
showOptionDialog(
null,
errorString,
"Override",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options,
options[0]
);
if (n == JOptionPane.YES_OPTION){
if(fc.getFileFilter().getDescription().equals("XML file")){
// save selectedDir.getPath()
}
}