这是我以前写的一个文本编辑器的代码,我把保存文件的实现放在了这里:
  public class SaveListener implements ActionListener{
    public void actionPerformed(ActionEvent e){
      if(BaseFrame.baseFrame.currInternalFrame!=null
         &&BaseFrame.baseFrame.currInternalFrame.textPane.changed
         ||BaseFrame.baseFrame.currInternalFrame.textPane.unamed){
          save(BaseFrame.baseFrame.currInternalFrame);
      BaseFrame.baseFrame.statusLabel.setText(
          BaseFrame.baseFrame.currInternalFrame.getTitle()+" - Saved.");
      BaseFrame.baseFrame.currInternalFrame.textPane.requestFocus();
      }//if
   }
   public void save(TextInternalFrame internalFrame){
     if(internalFrame.textPane.unamed==true){
       //If it is an untitled document,require user to specify the name
       saveAsListener.saveAs(internalFrame);
     }
     else{
     try
     {
     String fileName=internalFrame.textPane.fileName;
     File outputFile=new File(fileName);
     FileWriter out=new FileWriter(outputFile);
     char[] data=internalFrame.textPane.getText().toCharArray();
     //Write data to file
     out.write(data,0,data.length);
     out.close();
     internalFrame.textPane.unamed=false;
     BaseFrame.baseFrame.currInternalFrame.textPane.changed=false;
     }
     catch(IOException ex)
     {
       JOptionPane.showMessageDialog(BaseFrame.baseFrame,
                                        "Cannot save file","Error~",0);
     }
    }//else
   }//save()
  }//saveListener  public class SaveAllListener implements ActionListener{
    public void actionPerformed(ActionEvent e){
      int i=BaseFrame.baseFrame.desktop.getAllFrames().length;
      JInternalFrame []frameArray=BaseFrame.baseFrame.desktop.getAllFrames();
      //Save all the files by traverse the array;
      while(--i >=0){
        saveListener.save((TextInternalFrame)frameArray[i]);
        ((TextInternalFrame)frameArray[i]).textPane.changed=false;
      }
      BaseFrame.baseFrame.statusLabel.setText(
          BaseFrame.baseFrame.currInternalFrame.getTitle()+" - Saved.");
      BaseFrame.baseFrame.currInternalFrame.textPane.requestFocus();
   }
  }

解决方案 »

  1.   

    用JFileChooser轻易可做到
    String text = getMessageBox().getDisplayArea().getText();
            JFileChooser fileChooser = new JFileChooser();
            int option = fileChooser.showSaveDialog(null);
            if(option == JFileChooser.APPROVE_OPTION)
            {
              File file = fileChooser.getSelectedFile();
              try{
                if (file.exists() == false) {
                  file.createNewFile();
                }
                FileWriter writer = new FileWriter(file);
                char[] arry = text.toCharArray();
                writer.write(arry);
                writer.flush();
                writer.close();
              }
              catch(IOException ioe)
              {}