Datentypen Stringbuilder vollständig leeren

Aurus

Mitglied
Hi!

Mein aktuelles kleines Testprojekt nimmt einen Befehl entgegen der via DatagramPacket reinkommt, führt diesen aus und liest eben das resultat des ausgegebenen Befehles aus.

Jede einzelne Zeile vom cmd output wird mittels Append in den Stringbuilder sb geschrieben.

Am Ende wird das Resultat halt wieder zum Absender zurückgeschickt.

Habe jetzt das Problem das ich den Stringbuilder nicht wirklich geleert bekomme. Und zwar wenn ich beispielsweise den Befehl "hostname" ausführe und danach den Befehl "dir" ist der Wert im Stringbuilder "dirtname" :oops:

Habe versucht den Builder wie folgt zu leeren:

Java:
sb.setLength(0);
sb.delete(0, sb.length());

Danke! :toll:
 

KrokoDiehl

Top Contributor
Hm, bei mir genügt ein einzelnes
Code:
setLength(0)
.
Dein genannter Code ist übrigens in dieser Reihenfolge sinnfrei, weil du die Länge erst auf 0 setzt und dann bis zu dieser Länge löschst.
 

Aurus

Mitglied
Ich poste mal eben den ganzen Code:

Java:
public static void main(String[] args) throws IOException
	{
		DatagramSocket serverSocket = new DatagramSocket(9876);
        
		byte[] receiveData = new byte[1024];
        byte[] sendData = new byte[1024];
        
        
        while(true)
        {
             
       	 	  DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
              serverSocket.receive(receivePacket);
              
              String sentence = new String(receivePacket.getData());
              System.out.println("einkommender Befehl: " + sentence);      

              Process p = Runtime.getRuntime().exec("cmd /C " + sentence);
              BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));  
              
              StringBuilder sb = new StringBuilder();

              while((r.readLine()) != null)
              {
            	  sb.append(r.readLine() + "\n");
              }
              
              String full_cmdoutput = sb.toString();
              System.out.println(full_cmdoutput);
              
              InetAddress IPAddress = receivePacket.getAddress();
              int port = receivePacket.getPort();

              sendData = full_cmdoutput.getBytes();
       
              DatagramPacket sendPacket = new DatagramPacket(
            		  sendData, 
            		  sendData.length, 
            		  IPAddress, 
            		  port			);
              
              serverSocket.send(sendPacket);
              
              full_cmdoutput = null;
              sentence = null;
              
             // sb.setLength(0);
              sb.delete(0, sb.length());
                           
              System.out.println(sb.toString());
        }	  
	}

Eigentlich wird der Stringbuilder beim durchlauf schon immer neu erzeugt.. Funktioniert leider noch nicht

Danke für die Antworten
 

KrokoDiehl

Top Contributor
Wieso willst du ihn denn dann überhaupt leeren? Es hat ja gar keinen Effekt da er eh immer neu erzeugt wird.

Außerdem ist der Code in der while-Schleife fehlerhaft, weil du jede erste Zeile überspringst! Der
Code:
readLine()
-Aufruf liefert dir eine Zeile zurück, die du aber in der while-Bedingung gar nicht verwendest. Ich schätze der Fehler liegt hier!

Korrekterweise sollte es wie folgt sein:
Java:
String line = null;
while ((line = r.readLine()) != null) {
    sb.append(line).append("\n"); //das + kann man sich hier auch sparen
}
 

Aurus

Mitglied
Danke nun funktionierts schonmal um einiges besser.

Wenn ich davor beispielsweise den Befehl hostname abgesetz habe habe ich das Resultat null bekommen, das is jetzt nicht mehr der Fall. Allerdings bekomme ich wenn ich beispielsweise "hostname" und dann "dir" eingebe immer noch "dirtname" raus.

Dankesehr
 

Aurus

Mitglied
Ahh habs nun so gemacht das ich das Byte array einfach mit in die While Schleife gepackt habe. Sprich das Array wird bei jedem Durchlauf neu erzeugt. So funktionierts, danke :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
sserio StringBuilder und Strings Java Basics - Anfänger-Themen 8
Kotelettklopfer Stringbuilder mit print ausgeben Java Basics - Anfänger-Themen 83
C Long value an Stringbuilder übergeben, equals Methode funktioniert nicht Java Basics - Anfänger-Themen 2
P Methode trim() ohne StringBuilder Java Basics - Anfänger-Themen 1
P Stringbuilder richtig einsetzen Java Basics - Anfänger-Themen 1
W Teilstring durch Teilstring mittels StringBuilder ersetzen Java Basics - Anfänger-Themen 7
P Schleife für insert() und delete() im StringBuilder in Verbindung mit indexOf() Java Basics - Anfänger-Themen 7
G Wozu ist die Methode offsetByCodePoints(int, int) beim StringBuilder sinnvoll? Java Basics - Anfänger-Themen 1
G Wie kann ich einem StringBuilder einen int Wert formatiert hinzufügen? Java Basics - Anfänger-Themen 8
G Gibt es eine Methode die bei einem StringBuilder n mal das Zeichen c hinzufügt? Java Basics - Anfänger-Themen 6
G StringBuilder .setLength Methode wirkungslos? Java Basics - Anfänger-Themen 2
F StringBuilder: Zeilenumbruch nach x Zeichen ohne Worttrennung Java Basics - Anfänger-Themen 1
K StringBuilder Objekt überschreiben - Speicherverbrauch Java Basics - Anfänger-Themen 3
R [Erledigt]Fehler beim löschen von einzelnen Buchstaben aus StringBuilder Java Basics - Anfänger-Themen 1
H Suche Vergleichstabelle für die Klassen String und StringBuilder Java Basics - Anfänger-Themen 1
R Frage zum StringBuilder Java Basics - Anfänger-Themen 7
F Scanner + Stringbuilder geben leeren String aus wenn Umlaute enthalten sind Java Basics - Anfänger-Themen 29
M Array erweitern ohne Stringbuilder Java Basics - Anfänger-Themen 6
E StringBuilder.delete Problem Java Basics - Anfänger-Themen 2
J StringBuilder / String zusammensetzen Java Basics - Anfänger-Themen 2
F Problem bei StringBuilder Methoden Java Basics - Anfänger-Themen 11
C String oder StringBuilder? Java Basics - Anfänger-Themen 13
Java-Insel StringBuilder Zeilenumbrüche erkennen Java Basics - Anfänger-Themen 3
L StringBuilder Probleme in einer Klasse Java Basics - Anfänger-Themen 4
S im StringBuilder Zeichenketten ersetzen Java Basics - Anfänger-Themen 6
J StringBuilder initialisieren und Löschbefehl Java Basics - Anfänger-Themen 20
M Gittermuster mit Stringbuilder und einfacher Schleife erstellen Java Basics - Anfänger-Themen 19
B Stringbuilder verwenden Java Basics - Anfänger-Themen 15
L StringBuilder OutOfMemoryError Java Basics - Anfänger-Themen 8
S StringBuilder Java Basics - Anfänger-Themen 13
J Strings und StringBuilder Java Basics - Anfänger-Themen 12
K StringBuilder notwendig ab wann? Java Basics - Anfänger-Themen 42
H Array + StringBuilder in eine Textdatei speichern.laden. Java Basics - Anfänger-Themen 7
D StringBuilder Java Basics - Anfänger-Themen 10
N String oder StringBuffer/StringBuilder Java Basics - Anfänger-Themen 6
E Methoden Action Event wird nicht vollständig ausgeführt Java Basics - Anfänger-Themen 3
L Prüfen ob Fax (Tif-Datei) vollständig angekommen ist Java Basics - Anfänger-Themen 15
X Kann man post increment "vollständig schreiben"? Java Basics - Anfänger-Themen 13
U Prüfung, ob Datei vollständig vorhanden Java Basics - Anfänger-Themen 8
B Segment vollständig befüllen Java Basics - Anfänger-Themen 2
C Ausgabe nicht vollständig Java Basics - Anfänger-Themen 6
R GUI vollständig leeren Java Basics - Anfänger-Themen 10
D Laden und leeren von Comboboxen Java Basics - Anfänger-Themen 8
F Scanner - nextLine() gibt leeren String zurück Java Basics - Anfänger-Themen 2
E Was ergibt trim() auf einen leeren String Java Basics - Anfänger-Themen 3
A Queue (Array) leeren Java Basics - Anfänger-Themen 1
S Erste Schritte Konsole leeren Java Basics - Anfänger-Themen 3
H Methoden "Leeren" Speicher auf der Festplatte überschreiben Java Basics - Anfänger-Themen 8
S JFrame leeren Java Basics - Anfänger-Themen 6
B Ordner leeren/löschen Java Basics - Anfänger-Themen 5
S Input/Output einlesen aus einer evtl. leeren Datei Java Basics - Anfänger-Themen 5
T Konsole leeren? Java Basics - Anfänger-Themen 7
E Felder bei falscher Eingabe leeren Java Basics - Anfänger-Themen 8
Z GUI-Fenster leeren Java Basics - Anfänger-Themen 5
D Konsole leeren? Java Basics - Anfänger-Themen 5
S JTextField leeren ohne setText("")? Java Basics - Anfänger-Themen 3
L Problem damit, leeren String zurück zu geben Java Basics - Anfänger-Themen 16
M Kann kein Objekt (AudioFile in diesem Beispiel) für ein leeren String erzeugen Java Basics - Anfänger-Themen 3
J JTextfield mit Enter leeren Java Basics - Anfänger-Themen 3
Semox OOP ArrayList erlaubt keine Leeren Methode Java Basics - Anfänger-Themen 6
J Winzige Frage bezüglich leeren Zellen (HSSF) Java Basics - Anfänger-Themen 14
1 Icon Cache leeren Java Basics - Anfänger-Themen 10
M JTextField[] alle leeren Java Basics - Anfänger-Themen 4
M JTable sortieren ohne Berücksichtigung der leeren Zellen Java Basics - Anfänger-Themen 3
O Arbeit mit leeren Datensätzen / Objekten? Java Basics - Anfänger-Themen 5
J Tastatur-Puffer leeren Java Basics - Anfänger-Themen 3
C GUI Masken leeren Java Basics - Anfänger-Themen 13
G vector füllt sich immer weiter. wo muss ich ihn leeren? Java Basics - Anfänger-Themen 3
G Löschen durch Leeren Text einfügen? Java Basics - Anfänger-Themen 6
F Einer char-Variable "leeren" Inhalt zuweisen Java Basics - Anfänger-Themen 4
G TXT leeren! Java Basics - Anfänger-Themen 6
S panel leeren Java Basics - Anfänger-Themen 2
G Beschreibung eines 'leeren' char-Wertes Java Basics - Anfänger-Themen 3
T Konsole leeren? Java Basics - Anfänger-Themen 5
J Textfeld beim anklicken leeren Java Basics - Anfänger-Themen 16
D Konsolenausgabe leeren Java Basics - Anfänger-Themen 16
EagleEye JTextArea leeren Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben