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

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

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

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

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

public static void writer () throws IOException 
{
   FileWriter a= new Filewriter  (path to file );
}

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

xdyibdwo

xdyibdwo1#

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

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

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

writer.println(text);

相关问题