IF-Abfrage

Status
Nicht offen für weitere Antworten.

unknown_member

Bekanntes Mitglied
Hi!

Ich möchte mit einem PrintWriter in einer IF-Abfrage arbeiten. Das geht natürlich nicht. Deshalb möchte ich wissen, wie man einen PrintWriter in einen String umwandelt. Wie funktioniert das?


thx,
unknown_member
 
Vielleicht solltest du erstmal kurz beschreiben was du überhaupt tun möchtest. Ein PrintWriter ist dazu da um einfache Datentypen im Klartext in einen Stream auszugeben. Du kannst einen PrintWriter auch nicht zu einen String umwandeln (das wäre das gleiche als wenn du aus Stroh Gold machst 😉 ).

Gruß,
nocxsville
 
nocxsville hat gesagt.:
Du kannst einen PrintWriter auch nicht zu einen String umwandeln (das wäre das gleiche als wenn du aus Stroh Gold machst...

Nicht ganz richtig. Stroh zu Stroh, wäre eindeutiger - denn der PrintWriter gibt ja schon Text aus. Also: Text in Text umwandeln = Stroh in Stroh. Ist doch logisch, oder? :wink: *g*
 
Achso, nein, so hab ich das nicht gemeint. Ich will, dass dem Text, der gespeichert wird, ein .txt angehängt wird. Das ist ja auch einfach. Aber zusätzlich will ich ein Fenster öffnen, das angezeigt wird, wenn kein dateiname angegeben ist. Aber durch das ".txt" kann ich das nicht mit catch abfangen. Also will ich mit einer IF-Abfrage lösen:

Wenn der Dateiname ".txt" ist, wird dieses Fenster angezeigt.

Aber um das zu vergleichen, brauche ich einen String.
 
GAAAAAAAAAAAAAAAAANZ AUSFÜHRLICH:


In meinem Programm wird u.a. Text gespeichert. Den Dateinamen dieses Textes kann man in einem TextField eingeben. Damit nicht unbekannte Dateien entstehen, sondern txt-Dateien, hänge ich automatisch ein ".txt" an. Ich möchte aber, dass wenn in dem TextField nichts eingegeben ist, eine Meldung angezeigt wird.
Das mache ich mit "setVisible(true)" in der catch-Exception. Das funktioniert nun leider nicht mehr, da ich ja ".txt" anhänge und theoretisch etwas als Dateiname dasteht.

So versuche ich das Ganze mit einer IF-Abfrage zu lösen. Dazu muss ich ja einen String überprüfen, ich habe aber nur einen Dateinamen.

^
|

Das Problem ???:L
 
Code:
String dateiname = myTextField.getText();
if (dateiname.equals("")) {
    // Hinweisfenster anzeigen
} else {
   dateiname = dateiname + ".txt"; 
  // Hier deine Datei speichern
}
 
Okee, ich habe einen String mit dem Namen fehler erstellt und den Text aus dem TextField eingelesen. Trotzdem funzt s net:


Der ActionListener:

Code:
else if (event.getSource() == datei && fehler == "") {
          xyz.setVisible(true);
  }
 
Code:
fehler == ""

funktioniert auch nicht. Es muß heissen:

Code:
fehler.equals("")
 
Das TextField:

Code:
datei= new TextField(dname,20);
datei.setBackground(Color.lightGray);
datei.addMouseListener(this); 
datei.addKeyListener(this);


Der Speichern-Button:

Code:
speichern = new Button("Text speichern");
speichern.setBackground(Color.lightGray);


Der JDialog:

Code:
xyz = new JDialog();
xyz.setSize(300,200);
xyz.setLayout(new BorderLayout());
xyz.setTitle("Fehler");
In ihm sind noch ein paar Elemente enthalten, die aber irrelevant sind.



Der ActionListener (speichern):

Code:
   if (event.getSource() == speichern) {
     try {
          ausgabeDatei = new PrintWriter (new FileWriter(datei.getText() + ".txt", false));
          ausgabeDatei.print(eingabeFeld.getText());
          ausgabeDatei.close();
     }
     catch (IOException e) {
          xyz.setVisible(true);  //Das hat früher noch funktioniert.
     }
   }



Reicht das? :wink:
 
Leroy42 hat gesagt.:
Code:
String dateiname = myTextField.getText();
if (dateiname.equals("")) {
    // Hinweisfenster anzeigen
} else {
   dateiname = dateiname + ".txt"; 
  // Hier deine Datei speichern
}

die if abfrage muss da rein, du fragst ja jetzt garnichts ab
 
Also in etwa so:

Code:
if (event.getSource() == speichern) { 
    String dateiname = datei.getText(); 
    if (dateiname.equals("")) { 
        // Hinweisfenster anzeigen 
    } else { 
        try {
            ausgabeDatei = new PrintWriter (new FileWriter(dateiname + ".txt", false)); 
            ausgabeDatei.print(eingabeFeld.getText()); 
            ausgabeDatei.close(); 
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
 
und das close vom stream wäre wohl auch besser in nem finally aufgehoben
 
jango hat gesagt.:
nocxsville hat gesagt.:
Du kannst einen PrintWriter auch nicht zu einen String umwandeln (das wäre das gleiche als wenn du aus Stroh Gold machst...

Nicht ganz richtig. Stroh zu Stroh, wäre eindeutiger - denn der PrintWriter gibt ja schon Text aus. Also: Text in Text umwandeln = Stroh in Stroh. Ist doch logisch, oder? :wink: *g*

Richtig war aber auch nur ne kleine Metapher am Rande, also nicht all zu ernst nehmen 😛
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben