Podczas każdej zmiany treści w polu JTextArea
piszę do File
. Postanowiłem otworzyć i zamknąć zawartość pliku za każdym razem, zgodnie ze zdarzeniem zmiany.Otwieranie i zamykanie tego samego pliku wiele razy vs Otwieranie pliku przez długi czas
Coś,
public void addToLogFile(String changeContent) {
try {
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(currentLogFile,true)));
pw.print(changeContent);
pw.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
Zamiast otwierania i zamykania przy każdym pliku, myślałem może moglibyśmy otworzyć go w fazie początkowej i zrzucić zawartość w dowolnym momencie. Wreszcie zamknij go w fazie końcowej.
W początkowej fazie programu:
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(currentLogFile,true)));
Następnie gdzieś w kodzie, gdzie to konieczne,
pw.print(changeContent); // Most frequent usage
w ostatniej fazie programu:
pw.close();
Która jeden będzie bardziej wydajny ? W jakim stanie, Czy muszę wybrać jeden?
Zachowaj to, nie ma wątpliwości. – EJP