我创建了一个BufferedReader对象来读取文件。成功完成文件操作后,我将关闭这样的对象:
BufferedReader buffer = new BufferedReader(new FileReader("FileName"));
//Some file operation
buffer.close();
现在我需要在同一个程序中创建另一个BufferedReader对象,所以我想创建一个具有相同名称的anther BufferedReader对象(我需要使用同名创建对象,因为我想在某些条件下递归运行代码)。
当我尝试时,我收到一条消息,表示该对象已经存在同名,即使我关闭()对象也是如此。
有人可以指导我如何实现这个吗? 有没有办法删除对象引用而不只是关闭它? 问题可能很愚蠢,但到目前为止我还没有完成一个Java部分,我可以说我是新手。
谢谢你的进步!
错误ScreenShot:
我在做的是:
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();
收到错误消息,如屏幕截图所示。
答案 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"));
因为您不需要再次告诉编译器变量的类型是什么。