Я пишу программу на Java с использованием инфраструктуры Spark Streaming (даже если вы не знаете, что такое Spark, вы все равно можете узнать ответ на мою проблему). я в основном получать строки, по одному в секунду, через сокет и хочу сохранить их в текстовом файле (каждую строку разделенных абзацем так что-то вроде этого:.Как инициализировать FileWriter за пределами метода main()
FileWriter a = new Filewriter (path to file);
a.append(string s);
a.append('\n');
a.flush;
Пути Спарк Streaming работает путь преобразование метода main() в большой цикл while, поэтому для сохранения строк, которые я получаю в том же файле, мне нужно объявить переменную за пределами main() (в противном случае она будет продолжать инициализацию и сохранение только . последняя строка, которую он получает)
проблема заключается в том, из-за IOException, я должен сделать это:
public static void writer() throws IOException
{
FileWriter a= new Filewriter (path to file);
}
Но если я вызываю writer() в main(), я получаю ту же проблему, что и раньше (я продолжаю инициализацию a).
Как инициализировать внешний объект main(), поэтому у меня нет этой проблемы?
Большое вам спасибо.
почему наклоняю вы его смывать его содержимое в файл в конце While (основной) петли и добавить в файл каждый раз? Но я думаю, что частное - это путь, чтобы просто подумать о чем-то другом. – jgr208
Вы не можете называть 'writer()' в статическом блоке? как 'static {writer(); } '? таким образом, он будет выполняться только один раз, включив класс. – Shark