Сохранение строки с JFileChooser
И я делаю программу в Java, как блокнот. Таким образом, у меня есть сохранение вниз, и это работает, вот код, например
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) и сохраняет при нажатии сохранить. Но я хочу сделать это с 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();
}
}
Я понял это после того, как я отправил это
1 ответ
У вас есть много примеров в Google, в любом случае вот некоторые фрагменты кода, где я сохраняю 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()
}
}