当前位置: 首页 > 知识库问答 >
问题:

Java try-with-resource(当一个资源包装另一个资源时)

杜俊风
2023-03-14

假设我需要这个实例新的BufferedReader(new InputStreamReader(new FileInputStream(path))),使用try with resource编写这个实例的最佳方法是什么。

1.我习惯写什么--因为只有第一个可关闭的需要关闭

try (FileInputStream fileInputStream = new FileInputStream(path)) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(fileInputStream));
    ...
}
try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(path)))) {
    ...
}
try (
        FileInputStream fileInputSream = new FileInputStream(path);
        InputStreamReader inputStreamReader = new InputStreamReader(fileInputSream);
        BufferedReader reader = new BufferedReader(fileInputSream)) {
    ...
}

伊多·索罗松

共有1个答案

鲁英卫
2023-03-14

我建议一个可读性更强的选项(提取方法):

try (BufferedReader reader = getBufferReader()) {
 类似资料:
  • 这里有一个案例:我有身份服务器、客户端应用程序和资源(API)。身份服务器在endpoint超文本传输协议://身份服务器: 8080/连接/用户信息上提供用户信息。如果您发送带有有效访问令牌的请求,您将获得有关用户的其他信息。如果我需要有关资源的这些信息,我将如何获得它。我有两个想法: 通过客户端获取用户信息。(客户端在userinfoendpoint上发送请求并获取信息,然后使用请求调用API

  • 这是一种向可观察的客户列表中添加新行星的方法。 我想知道我是否正确使用资源尝试,以及自动关闭是否工作。 我的问题是,这部分需要被封闭在一个try-catch块中,还是自动关闭。

  • 我想知道如何设计一个RESTFUL api,用于一次性创建一个资源及其相关资源。 例如,我想使用RESTFUL API创建一个包含项目列表的订单,例如: null 那么,将项目放在请求正文中,并只向发布一次是一种好方法吗?还是针对这种情况有其他更好的设计? 谢谢你!

  • Current Usage # resource_getrusage.py import resource import time RESOURCES = [ ('ru_utime', 'User time'), ('ru_stime', 'System time'), ('ru_maxrss', 'Max. Resident Set Size'), ('ru_i

  • A collection of awesome Ruby libraries, tools, frameworks and software. The essential Ruby to build modern Apps and Web Apps. Inspired by the awesome-* trend on GitHub. The goal is to build a categori

  • 我使用open-api-3标准创建了一个swagger.json,以便能够使用工具swagger-codegen生成客户端sdk。我的问题是,每个apiendpoint最终都得到自己的api对象,而不是一个api对象用于所有的APIendpoint。 预期: 实际: 问:如何配置swagger codegen或我的swagger.json来为所有实体/资源只创建一个api对象? 在此示例中,我使用