gpt4 book ai didi

java - 如何在 if 语句中使用 try-with-resources?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:55:02 26 4
gpt4 key购买 nike

我有简单的代码:

try (FileReader file = new FileReader(messageFilePath);
BufferedReader reader = new BufferedReader(file)) {

String line;
while ((line = reader.readLine()) != null) {
////
}
}

我想写这样的东西:

FileReader file = null;
///.....

try (file = (file == null ? new FileReader(messageFilePath) : file);
BufferedReader reader = new BufferedReader(file)) {

String line;
while ((line = reader.readLine()) != null) {
////
}
}

它将允许我重用 FileReader。是否可以?如果不是,如何正确重用 FileReader

附言
如果它很重要,我会使用 Java 8。

最佳答案

您总是必须定义 try-with-resources block 的新变量部分。 这是 Java 7/8 中实现的当前限制。在 Java 9 中,他们考虑支持您 native 要求的内容。

但是您可以使用以下小技巧:

public static void main(String[] args) throws IOException {
FileReader file = null;
String messageFilePath = "";

try (FileReader reader = file = (file == null ? new FileReader(messageFilePath) : file);
BufferedReader bufReader = new BufferedReader(file)) {

String line;

while ((line = bufReader.readLine()) != null) {
////
}
}
}

关于java - 如何在 if 语句中使用 try-with-resources?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28702219/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com