我正在研究一个小程序,它需要我从一个文件中读取一组参数,对其中的三个类执行一些操作(所有3个类继承相同的父类)。每个操作之后,该方法应该打印一行在一个输出文件中类似方法2 方法的方法1个 输出3 1等如何在多个类中使用相同的printwriter(java)
的的输出2的方法1个 输出1的该
输出1想法是所有3个类的所有方法都应该在同一个文件中打印,顺序不重要。
我已经使用这个代码在每个方法的末尾/ if块
if/method {
.... do something
text ="output of something";
try(PrintWriter out = new PrintWriter("outputfile.txt") ){
out.println(text);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}//end if/method
的代码确实写的东西到该文件,但它始终会覆盖前行。因此,例如,不是有12行“东西”,我只有1个。
我该如何解决这个问题?我怀疑这是因为我每次都制作一个新的PrintWriter,并想过在其他地方声明它并将其调用给每个类。这会起作用吗?我怎么去把它叫给每个班?
这是我第一次使用文件。谢谢。
是的,问题是你创造的所有三个类的新PrintWriter。而不是做这个,你必须把它作为参数传递。例如:编写处理方法以接受PrintWriter作为参数,然后在主方法中创建一个PrintWriter实例,然后将三个方法调用放入其try块中。 –
@BalázsNemes,如果写操作不是并发和及时分离的(即每个类可以写而不管其他三个类正在做什么),为每个类创建自己的打印作家实际上是很好的。 –
@ M.Prokhorov好的..那么我该如何避免覆盖? –