聊天记录的保存问题?

vkeypm 2007-11-13 09:30:38
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文件只能保存最后一个记录。
会把以前的覆盖了,请大家不要保留意见啊!

先谢了哦!
...全文
44 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
vkeypm 2007-11-13
  • 打赏
  • 举报
回复
如何将历史聊天记录改成从底部开始显示?
vkeypm 2007-11-13
  • 打赏
  • 举报
回复
给你了啊!
网络咖啡 2007-11-13
  • 打赏
  • 举报
回复
把流的操作修改成追加模式
FileOutputStream fos=new FileOutputStream( "1.txt ",true);

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧