Ich schreibe ein Programm in Java mit dem Spark Streaming-Framework (auch wenn Sie nicht wissen, was Spark ist, können Sie immer noch die Antwort auf mein Problem kennen). Ich erhalte grundsätzlich Strings, eine pro Sekunde über eine Buchse und wollen, dass sie in einer txt-Datei (jede Zeichenfolge durch einen Absatz getrennt speichern, so etwas wie folgt aus:.Wie FileWriter außerhalb der main() Methode zu initialisieren ist
FileWriter a = new Filewriter (path to file);
a.append(string s);
a.append('\n');
a.flush;
Die Art und Weise Spark-Streaming funktioniert, ist durch Die Methode main() wird in eine große while-Schleife umgewandelt, damit ich die Strings, die ich in der gleichen Datei erhalte, speichern muss, muss ich die a-Variable außerhalb von main() deklarieren (ansonsten wird nur initialisiert und gespeichert) . die letzte Zeichenkette, die es empfängt)
das Problem ist, wegen einer IOException, ich habe dies zu tun:
public static void writer() throws IOException
{
FileWriter a= new Filewriter (path to file);
}
Aber wenn ich writer() im main() aufrufen bekomme ich das gleiche Problem wie vorher (ich initialisiere weiter a).
Wie kann ich eine außerhalb der Haupt() initialisieren, so habe ich dieses Problem nicht?
Vielen Dank.
warum kann nicht Sie haben es seinen Inhalt auf eine Datei am Ende der while (Haupt-) Schleife spülen und jedes Mal an die Datei anhängen? Aber ich denke, das Private ist der Weg, um nur etwas anderes zu denken. – jgr208
können Sie 'writer()' nicht in einem statischen Block aufrufen? wie 'static {writer(); } '? So wird es nur einmal ausgeführt, wenn die Klasse eingeschlossen wird. – Shark