txt Datei schreiben und lesen

edsie2011

Aktives Mitglied
Hallo leut ich schreibe eine Server anwendung und ich wollte eine klasse schreiben in der ich eine text datei schreibe in der Benutzernamen, PWD, und nachricht drin steht.
benutzer und pwd fets

und nachricht vom client ankommend soll darin gespeichert werden(max 150 zeichen)

könnt ihr mir tipps geben wie ich die programmieren kann.;(
 
nein nicht am erstellen der datei fiel mehr wie schreibe ich in die datei rein und wie lese ich nur den beutzer oder pwd und nicht alles was drin steht
 
wie schreibe ich in die datei rein
Wenn du den FileWriter mit nem BufferedWriter kapselst kannst du komplette Strings Zeilenweise schreiben.

und wie lese ich nur den beutzer oder pwd und nicht alles was drin steht
Du musst dir alles auslesen und dir dann die relevanten Daten raussuchen. Du könntest dir eine CSV Datei schreiben die z.b. so aufgebaut ist:
Benutzername;Passwort;Nachricht
Du liest deine Datei dann Zeilenweise aus und suchst dir die richtige Zeile anhand des Benutzernamens aus.
 
könntest du mir bitte ein bsp demonstriren 😳
auch wie ich z.b die ; rauskriege

ich muss die ja irgend wie ausklammern

Danke die antworten sind mir sehr nützlig
 
Zuletzt bearbeitet:
Hi,

wie wäre die Version für das Auslesen der Daten.

Du musst lediglich eine Textdatei in deinem Projekt haben, bei der in der ersten Zeile 3 Wörter die mit Semikolon getrennt sind, steht.

Hoffe so hast du das gemeint EikeB

Java:
import java.io.*;


public class Test
{ 
  

     public static void main(String[] args){ 
    	 
    	 try {
			BufferedReader reader = new BufferedReader(new FileReader("test.txt"));
			String zeile = reader.readLine();
			System.out.println(zeile);
			String [] textTeile =  zeile.split(";");
			System.out.println("Benutzername: " + textTeile[0] + " Passwort: " + textTeile[1] + " Nachricht: " + textTeile[2]);
			
		} catch (IOException e) {
			
			e.printStackTrace();
		}
    	 
     
    }
 }
 
Scheiterts am erstellen der Datei? Da kannst du z.b. den FileWriter nehmen.

wäre hier eine äuserst schlechte wahl da jedes mal das komplette file neu geschrieben werden müsste ...

besser würde sich hier RandomAccessFile machen ...

@TO
nimm lieber ne datenbank ... geht einfacher und schneller
 
Naja, einlesen muss er eh alles, dann kann er auch beim Speichern das komplette File schreiben. Das ist zumindest einfacher als mit nem RandomAccessFile rumzuhantieren und aufzupassen dass man nachfolgende Einträge nicht aus versehen überschreibt oder irgendwo lücken entstehen...
 
dafür hat ja auch mal irgendwer irgendwann datenbanken erfunden die sich um sowas kümmern ...
 
Ja danke das Funktioniert soweit der hat die Datei richtig gelesen.

Jetzt wollte ich nicht das wiedergeben wird
Java:
 System.out.println("Benutzername: " + textTeile[0] + " Passwort: " + textTeile[1] + " Nachricht: " + textTeile[2]);

sondern vom client her gelesen wird, also welche metode muss ich dem client übergeben.

Vieleicht mal so

Twitter klasse
Java:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
 
@WebService
@SOAPBinding(style=Style.RPC)

public class Twitter {
   public void CreateFile() throws IOException{
	   try {
           BufferedReader reader = new BufferedReader(new FileReader("Namen.dat"));
           String zeile = reader.readLine();
           String [] textTeile =  zeile.split(";");
           
       } catch (IOException e) {
           
           e.printStackTrace();
       }
        
    
   }
}

Hier soll der Benutzer und das Passwort gelesen werden und die nachrichten. Zusätzlig sollen hier die Nachrichten nach zeit und Datum gespeichert werden. Wie kann ich das ambesten machen. Ich habe schon in google gesucht aber keine Antwort gefunden:shock:

Java:
import javax.xml.ws.Endpoint;
import des.Twitter;
 
public class TwitterServer {
  public static void main (String args[]) {
    Twitter server = new Twitter();
    Endpoint endpoint = Endpoint.publish("http://localhost:8080/twitter", server);
  }
}

hier wird der Dienst bereit gestellt.

muss ich jetzt iregendwie
Java:
BufferedWriter
einbinden der mir in die datei rein schreibt.?
 
Zuletzt bearbeitet:

Zurück
Oben