close()之后是否可以重新创建Java BufferedReader对象

时间:2017-05-17 13:00:46

标签: java

我创建了一个BufferedReader对象来读取文件。成功完成文件操作后,我将关闭这样的对象:

BufferedReader buffer = new BufferedReader(new FileReader("FileName"));
     //Some file operation
buffer.close();

现在我需要在同一个程序中创建另一个BufferedReader对象,所以我想创建一个具有相同名称​​的anther BufferedReader对象(我需要使用同名创建对象,因为我想在某些条件下递归运行代码)

当我尝试时,我收到一条消息,表示该对象已经存在同名,即使我关闭()对象也是如此。

有人可以指导我如何实现这个吗? 有没有办法删除对象引用而不只是关闭它? 问题可能很愚蠢,但到目前为止我还没有完成一个Java部分,我可以说我是新手。

谢谢你的进步!

错误Scre​​enShot:

enter image description here

我在做的是:

  BufferedReader buffer = new BufferedReader(new FileReader("$PropFilePath/WebAndService-Test.details"));
        //Code to read the file and assigning values to some variables
  buffer.close();

  BufferedReader buffer = new BufferedReader(new FileReader("$PropFilePath/ProjectDependencies-Test.List"));
        //Code to use those variables and perform operation on new read file.
  buffer.close();

收到错误消息,如屏幕截图所示。

2 个答案:

答案 0 :(得分:2)

看起来您可能在同一个区块中两次声明BufferedReader buffer = ...。使用新的变量名称BufferedReader anotheBuffer = ...或重用而不声明buffer = ...。我会建议一个新的变量。您还应该考虑使用try-with-resources

答案 1 :(得分:1)

当您想要将变量重新分配给新对象时,问题似乎是您使用了错误的语法。

你在做什么

    BufferedReader buffer = new BufferedReader(new FileReader("FileName"));

这是在定义新变量时使用的语法,但是要将新对象分配给现有变量,正确的语法是

    buffer = new BufferedReader(new FileReader("FileName"));

因为您不需要再次告诉编译器变量的类型是什么。

相关问题