【发布时间】:2017-07-28 15:20:49
【问题描述】:
当我写这样的东西时:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("c:\\test.txt")));
br.close();
关闭最外层的对象,在本例中为 br,也会自动关闭所有链接的对象。
但是如果仍然有对链接对象的引用呢?
类似这样的:
FileInputStream fis = new FileInputStream("c:\\test.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
br.close();
在这种情况下,我不希望 fis 被释放,因为我需要尽快在其他流中使用它。
那么这里可以调用br的close(),并且仍然可以使用fis吗?
【问题讨论】:
-
您还需要在什么其他流中使用它?为什么?那就是你的问题。
-
你说“需要在其他流中使用它”是什么意思,你知道流不必支持返回吗?
-
@SotiriosDelimanolis 是的,你也许是对的。我不记得确切的情况,但是,不必像你说的那样做。但是我想知道在这种情况下会发生什么,因为我还在学习 Java,想知道它是如何工作的。
-
@luk2302 我不是故意粗鲁,但我经常看到这里的人只是说“你为什么要那样做?”并且不回答任何问题..我认为问一些好奇的东西并没有那么糟糕,如果它可以帮助某人很好地理解某事。这个地方不仅适合实用的编码员。我不知道,但不要那样做,因为那不是真正的答案..
-
没有冒犯,没有什么粗鲁的,别担心。
标签: java stream fileinputstream