RT:保存之后只有一个空白的txt;
问题主要出在save()这个方法;
请大侠指教一下;
//NoteFrame.java
import javax.swing.*;
import java.io.*;
import java.awt.*;
import java.awt.Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; class NoteFrame extends JFrame implements ActionListener {
// Police police;
JTextArea jta;
JMenuBar bar;

JMenu men1,men2,men3,men4,men5;

JMenuItem itm1,itm2,itm3,itm4,itm5,itm6,itm7,itm8,itm9,itm10,itm11,itm12;

public NoteFrame()
{ jta = new JTextArea();
bar = new JMenuBar();

//文件的JMenu
men1 = new JMenu("文件(F)") ;
itm1 = new JMenuItem("打开(O)");
itm2 = new JMenuItem("保存(S)");
itm3 = new JMenuItem("退出(X)");
men1.add(itm1);
men1.add(itm2);
men1.add(itm3);
bar.add(men1);

//编辑的JMenu
men2 = new JMenu("编辑(E)") ;
itm4 = new JMenuItem("剪切(T)");
itm5 = new JMenuItem("复制(C)");
itm6= new JMenuItem("粘贴(P)");
itm7 = new JMenuItem("删除(L)");
men2.add(itm4);
men2.add(itm5);
men2.add(itm6);
men2.add(itm7);
bar.add(men2);

//格式的JMenu
men3 = new JMenu("格式(E)") ;
itm8 = new JMenuItem("自动换行(W)");
itm9 = new JMenuItem("字体(F)...");
men3.add(itm8);
men3.add(itm9);
bar.add(men3);

men4 = new JMenu("查看(V)") ;
itm10 = new JMenuItem("状态栏(S)");
men4.add(itm10);
bar.add(men4);

men5 = new JMenu("帮助(H)") ;
itm11 = new JMenuItem("查看帮助(H)");
itm12 = new JMenuItem("关于记事本(A)");
men5.add(itm11);
men5.add(itm12);
bar.add(men5);

this.add(bar);
this.setJMenuBar(bar);
this.add(jta);
this.setBounds(200,200,600,450);
validate();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

/*for(int i= 1;i<8;i++)
 * {
itm[i].addActionListener(this);
}
*/
itm1.addActionListener(this);
itm2.addActionListener(this);
itm3.addActionListener(this);
itm4.addActionListener(this);
itm5.addActionListener(this);
itm6.addActionListener(this);
itm7.addActionListener(this); }
//class Police implements ActionListener
//{
public void open()
{
JFileChooser jfc1 = new  JFileChooser();
jfc1.setDialogTitle("请选文件......");
jfc1.showOpenDialog(null);
jfc1.setVisible(true);
String filename = jfc1.getSelectedFile().getAbsolutePath();
FileReader fr = null;
BufferedReader br = null;
try
{
fr = new FileReader(filename);
br = new BufferedReader(fr);
String s = "";
String all = "";
while((s=br.readLine())!=null)
{
all+=s+"\n"+br.readLine();
}
jta.setText(all);
fr.close();
br.close();
}
catch(IOException e1)
{
e1.printStackTrace();
}
finally
{
try
{
fr.close();
br.close();
}
catch(IOException e2)
{
e2.printStackTrace();
}
}
}

public void save(){
JFileChooser jfc2 = new JFileChooser();
jfc2.setDialogTitle("令存为......");
jfc2.showSaveDialog(null);
jfc2.setVisible(true);
String file = jfc2.getSelectedFile().getAbsolutePath();
//File file = new File(jfc2.getCurrentDirectory(),jfc2.getSelectedFile().getName());
try
{
FileWriter fw = null;
BufferedWriter bw = null;
//String n =null;
fw = new FileWriter(file);
bw = new BufferedWriter(fw);
//while((n=bw.newLine())!=-1){
System.out.println("bw.write");
 bw.write(jta.getText());
System.out.println("bw.write");
//}
}
catch(IOException e3)
{
e3.printStackTrace();
}
}
/*finally
{
try
{
fw.close();
bw.close();
}
catch(IOException e4)
{5
e4.printStackTrace();
}
}
*/
public void actionPerformed(ActionEvent e) 
{
//String comm=e.getActionCommand();

if(e.getSource()==itm1)
{
this.open();
}


else if(e.getSource()==itm2)
{
this.save();
}


else  if(e.getSource()==itm3)
{
System.exit(0);
}

else if(e.getSource()==itm4)
{
jta.cut();
}

else if(e.getSource()==itm5)
{
jta.copy();
}

else if(e.getSource()==itm6)
{
jta.paste();
}

else if(e.getSource()==itm7)
{
jta.replaceSelection("");
//System.out.println("itm7!");

}

}
}
//Note.javapublic class Note
{ public static void main(String[] args)
{
new NoteFrame();
}}