Zapisywanie tekstu do pliku txt/ wyswietlanie tekstu w Gui Netbeam

0

Witam. Poniżej przedstawiłem fragment kodu programu klient-serwer, którego celem jest wysyłanie wiadomości z serwera do klienta po czym wyświetlenie ich i zapisanie pobranych wiadomości w pliku txt na dysku. Jakiej metody muszę użyć aby wyświetlać pobrane dane. Na początku wykorzystałem w Gui z Netbeam textArea.setText jednak dane nie ulegały nadpisowi a podmieniały się na nową wiadomość. Ten sam problem występował podczas zapisu w pliku txt. Dziękuje za pomoc.

Serwer

private void Nasluchuj(java.awt.event.ActionEvent evt) {                           
       
        int port = 5500;

       try{
           DatagramSocket socket =  new DatagramSocket(port);
           while(true) {
             
               byte[] buf = new byte[100];
               DatagramPacket packet=new DatagramPacket(buf, buf.length);
               socket.receive(packet );
               String tekst;
               tekst = (" ["+new String(packet.getData()).trim() +"] \n");
               
               String[] ntekst= null;
                for (int j = 0; j < ntekst.length; j++) {
              String[] linie = {ntekst[j]};
     FileWriter fw = null;

    try {
       fw = new FileWriter("plik.txt");
          } catch (IOException e) {
        e.printStackTrace();
     }
                
   BufferedWriter bw = new BufferedWriter(fw);
   try {
       for (int i = 0; i < linie.length; i++) {
         bw.write(linie[i]);
         bw.newLine();
       }
     } catch (IOException e) {
        e.printStackTrace();
     }
                
     try {
        bw.close();
        fw.close();
     } catch (IOException e) {
           e.printStackTrace();
     }
                }}
       }
       catch(Exception e) {System.err.println(e);}
    }                          


Klient

private void wyslij(java.awt.event.ActionEvent evt) {                        
       int port = 5500;
       String adresip = jTextField2.getText();
       String info =jTextField1.getText();
       String czytnik= "czytnik1: ";
       String napis =czytnik+info;
       String wiadomosc="";
       
try {
    InetAddress servAddr = InetAddress.getByName(adresip);
    String data = napis;
    byte buf[] = data.getBytes();
    DatagramSocket socket= new DatagramSocket();
    DatagramPacket packet = new DatagramPacket (buf, buf.length, servAddr, port );
    socket.send(packet);
    wiadomosc=wiadomosc+"wyslano do: "+adresip+" wiadomosc: "+napis+"\n";
    textArea1.setText(wiadomosc);
    jTextField1.setText("");
    
}
catch(Exception ex) {
    System.err.println(ex);
    
}
       

1

Korzystanie z dokumentacji nie gryzie.

textArea.append(...);
... new FilWriter(...,true);

1 użytkowników online, w tym zalogowanych: 0, gości: 1