package myprojects.chat;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import javax.swing.*;
import java.io.*;
class Chat extends Frame{
   List lst=new List(15);
   TextField tfIP=new TextField(15);
   TextField tfData=new TextField(20);
   JButton saveButton=new JButton("存储");  
   DatagramSocket ds=null;
public Chat(){
try{ds=new DatagramSocket(3000);}
catch(Exception e)
{e.printStackTrace();}
this.add(lst,"Center");
Panel p=new Panel();
this.add(p,"North");
p.setLayout(new BorderLayout());
p.add(tfIP,"West");
p.add(tfData,"East");
this.add(saveButton,BorderLayout.SOUTH);  
setVisible(true);  
new Thread(new Runnable()
{public void run()
{byte buf[]=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,1024);
while(true){try{ds.receive(dp);
                 
                lst.add(new String(buf,0,dp.getLength())+"from"+dp.getAddress().getHostAddress()+":"+dp.getPort());}
           catch(Exception e){if(!ds.isClosed())
                         {e.printStackTrace();}
                        }
                       }
                     }
             }).start();
tfData.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e)
      {     byte [] buf;
            buf = tfData.getText().getBytes();
            try
                {DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName(tfIP.getText()),3000);
                    ds.send(dp);
                  FileOutputStream fos=new FileOutputStream("1.txt");
                  OutputStreamWriter osw=new OutputStreamWriter(fos); 
                  String saveString=tfData.getText();//.replaceAll("\n","\r\n");
                  osw.write(saveString); 
                  osw.write("\n"); 
                  osw.flush(); 
                  osw.close();               
                  }
           catch(Exception ex)
                {ex.printStackTrace();}
             tfData.setText("");
       }
    });
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
    {ds.close();
    dispose();
   System.exit(0);} 
});
 }
public static void main(String args[])
      {
         System.out.println("starting chat");
         Chat mainFrame=new Chat();
         mainFrame.setSize(300,360);
         mainFrame.setTitle("Chat");
         mainFrame.setVisible(true);
         mainFrame.setResizable(false);
         
         }
}为什么保存的TXT文件只能保存最后一个记录。
会把以前的覆盖了,请大家不要保留意见啊!先谢了哦!