817 Stimmen

Wie speichere ich einen String in einer Textdatei mit Java?

In Java habe ich Text aus einem Textfeld in einer String-Variablen namens "text".

Wie kann ich den Inhalt der Variablen "text" in einer Datei speichern?

820voto

Jeremy Smyth Punkte 22624

Wenn Sie nur Text und keine binären Daten ausgeben wollen, funktioniert das Folgende:

PrintWriter out = new PrintWriter("filename.txt");

Dann schreiben Sie Ihre Zeichenkette dorthin, so wie Sie es mit jedem anderen Ausgabestrom tun würden:

out.println(text);

Sie benötigen wie immer eine Ausnahmebehandlung. Rufen Sie unbedingt out.close() wenn Sie mit dem Schreiben fertig sind.

Wenn Sie Java 7 oder höher verwenden, können Sie das " Versuch-mit-Ressourcen-Anweisung "Dies schließt automatisch Ihre PrintStream wenn Sie damit fertig sind (d.h. den Block verlassen), wie folgt:

try (PrintWriter out = new PrintWriter("filename.txt")) {
    out.println(text);
}

Sie müssen immer noch explizit die java.io.FileNotFoundException wie bisher.

279voto

Jon Punkte 58858

Apache Commons IO enthält einige großartige Methoden für diese Aufgabe, insbesondere FileUtils enthält die folgende Methode:

static void writeStringToFile(File file, String data, Charset charset) 

die es Ihnen ermöglicht, mit einem einzigen Methodenaufruf Text in eine Datei zu schreiben:

FileUtils.writeStringToFile(new File("test.txt"), "Hello File", Charset.forName("UTF-8"));

Vielleicht möchten Sie auch die Kodierung der Datei angeben.

143voto

Daniil Shevelev Punkte 11113

In Java 7 können Sie dies tun:

String content = "Hello File!";
String path = "C:/a.txt";
Files.write( Paths.get(path), content.getBytes());

Mehr Informationen gibt es hier: http://www.drdobbs.com/jvm/java-se-7-new-file-io/231600403

114voto

Jorn Punkte 17575

Werfen Sie einen Blick auf die Java File API

ein kurzes Beispiel:

try (PrintStream out = new PrintStream(new FileOutputStream("filename.txt"))) {
    out.print(text);
}

83voto

Artem Barger Punkte 39755

Ich habe gerade etwas Ähnliches in meinem Projekt gemacht. Verwenden Sie FileWriter wird Ihnen einen Teil Ihrer Arbeit erleichtern. Und hier finden Sie schöne チュートリアル .

BufferedWriter writer = null;
try
{
    writer = new BufferedWriter( new FileWriter( yourfilename));
    writer.write( yourstring);

}
catch ( IOException e)
{
}
finally
{
    try
    {
        if ( writer != null)
        writer.close( );
    }
    catch ( IOException e)
    {
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X