Сохранение строки с 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() 


                }
            } 
Другие вопросы по тегам