// In Datei schreiben
String output = "Dein Text";
BufferedWriter w = null;
try {
w = new BufferedWriter(new FileWriter("filename.txt"));
w.write(output);
} catch (IOException e) {
// Exception behandeln
} finally {
w.close(); // Reader und Writer IMMER schließen!
}
// Aus Datei lesen
String input = "";
BufferedReader r = null;
try {
r = new BufferedReader(new FileReader("filename.txt"));
input = r.readLine(); // Einzelne Zeile einlesen
} catch (IOException e) {
// Exception behandeln
} finally {
r.close(); // Reader und Writer IMMER schließen!
}
// Zum Einlesen ganzer Dateien und nicht nur der ersten Zeile
StringBuilder sb = new StringBuilder();
String input = "";
BufferedReader r = null;
try {
r = new BufferedReader(new FileReader("filename.txt"));
while((input = r.readLine()) != null) {
sb.append(input);
}
} catch (IOException e) {
// Exception behandeln
} finally {
r.close(); // Reader und Writer IMMER schließen!
}
input = sb.toString();
BufferedWriter w = null;
BufferedReader r = null;
BufferedWriter w;
ähm ???:L what? Die beiden Ausdrücke sind äquivalent, und der GC hat in beiden Fällen nichts wegzuräumen.Eine kleine Anmerkung noch zu deiner ansonsten guten Erklärung:
Wenn duoderCode:BufferedWriter w = null;
schreibst, dann wird der GC diesen beim nächsten mal freigeben und den reservierten Speicher löschen. Deswegen solltest du imho lieberCode:BufferedReader r = null;
schreiben, dann hat der GC keine Chance, ausversehen dazwischenzufunken.Code:BufferedWriter w;
@Gastredner:
Eine kleine Anmerkung noch zu deiner ansonsten guten Erklärung:
Wenn duoderCode:BufferedWriter w = null;
schreibst, dann wird der GC diesen beim nächsten mal freigeben und den reservierten Speicher löschen. Deswegen solltest du imho lieberCode:BufferedReader r = null;
schreiben, dann hat der GC keine Chance, ausversehen dazwischenzufunken.Code:BufferedWriter w;