如何在 main() 方法之外初始化 FileWriter
How to initialize FileWriter outside of the main() method
我正在 Java 使用 Spark Streaming 框架编写程序(即使您不知道 Spark 是什么,您可能仍然知道我的问题的答案)。
我基本上是通过套接字接收字符串,每秒一个,并希望将它们保存在一个 txt 文件中(每个字符串由一个段落分隔。所以像这样:
FileWriter a = new Filewriter (path to file);
a.append(string s);
a.append('\n');
a.flush;
Spark Streaming 的工作方式是将 main () 方法转换为一个大的 while 循环,所以为了让我将接收到的字符串保存在同一个文件中,我需要在main()(否则它会一直初始化并只保存它收到的最后一个字符串)。
问题是,由于 IOEXCEPTION,我必须这样做:
public static void writer () throws IOException
{
FileWriter a= new Filewriter (path to file );
}
但是如果我在 main () 中调用 writer() 我会遇到和以前一样的问题(我一直在初始化 a)。
如何在main()外初始化一个,才不会出现这个问题?
非常感谢。
您可以将其声明为一个字段,但是您需要在构造函数中捕获异常。你可以这样做
private final PrintWriter writer = new PrintWriter(filename, true);
使用 PrintWriter 的好处是
- 它在每行的末尾放置一个适当的换行符。
- 可以启用自动刷新。
你可以用
调用它
writer.println(text);
我正在 Java 使用 Spark Streaming 框架编写程序(即使您不知道 Spark 是什么,您可能仍然知道我的问题的答案)。 我基本上是通过套接字接收字符串,每秒一个,并希望将它们保存在一个 txt 文件中(每个字符串由一个段落分隔。所以像这样:
FileWriter a = new Filewriter (path to file);
a.append(string s);
a.append('\n');
a.flush;
Spark Streaming 的工作方式是将 main () 方法转换为一个大的 while 循环,所以为了让我将接收到的字符串保存在同一个文件中,我需要在main()(否则它会一直初始化并只保存它收到的最后一个字符串)。
问题是,由于 IOEXCEPTION,我必须这样做:
public static void writer () throws IOException
{
FileWriter a= new Filewriter (path to file );
}
但是如果我在 main () 中调用 writer() 我会遇到和以前一样的问题(我一直在初始化 a)。
如何在main()外初始化一个,才不会出现这个问题?
非常感谢。
您可以将其声明为一个字段,但是您需要在构造函数中捕获异常。你可以这样做
private final PrintWriter writer = new PrintWriter(filename, true);
使用 PrintWriter 的好处是
- 它在每行的末尾放置一个适当的换行符。
- 可以启用自动刷新。
你可以用
调用它writer.println(text);