如何在main()方法之外初始化filewriter

wgxvkvu9  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(407)

我正在用java编写一个使用spark流框架的程序(即使你不知道spark是什么,你可能仍然知道我问题的答案)。我基本上是通过套接字每秒接收一个字符串,并希望将它们保存在txt文件中(每个字符串由一个段落分隔)。比如说:

  1. FileWriter a = new Filewriter (path to file);
  2. a.append(string s);
  3. a.append('\n');
  4. a.flush;

spark流的工作方式是将main()方法转换成一个大while循环,因此为了将接收到的字符串保存在同一个文件中,我需要在main()之外声明一个变量(否则它将继续初始化并只保存它接收到的最后一个字符串)。
问题是,由于ioexception,我必须这样做:

  1. public static void writer () throws IOException
  2. {
  3. FileWriter a= new Filewriter (path to file );
  4. }

但是如果我在main()中调用writer(),我会遇到与以前相同的问题(我一直在初始化一个)。
如何在main()之外初始化一个,这样就没有这个问题了?
非常感谢。

xdyibdwo

xdyibdwo1#

可以将其声明为字段,但是需要在构造函数中捕获异常。你能做到的

  1. private final PrintWriter writer = new PrintWriter(filename, true);

使用printwriter的优点是
它在每行的末尾放置一个适当的换行符。
可以启用自动刷新。
你可以用

  1. writer.println(text);

相关问题