java - 冲洗物体的正确位置

标签 java

我写了一小段打印代码:

        BufferedWriter out = null;
        try {
            out = new BufferedWriter(new OutputStreamWriter(
                    new FileOutputStream(FileDescriptor.out), "ASCII"), 512);
            out.write(msg + '\n');
            out.flush();
        } catch (UnsupportedEncodingException e) {

            throw new IllegalStateException(
                    "Test failed ",
                    e);
        } catch (IOException e) {

            throw new IllegalStateException(
                    "Test failed", e);
        } finally {
            if (out != null) {
                out = null;
            }
        }

obj 的刷新仅在 try block 中完成。那么这是一个好方法还是我应该刷新 finally block 中的对象?

最佳答案

如果可以,请使用现代语法,不要担心所有这些。关闭会自动刷新它,所以只需使用 try-with-resources 语法。此代码更短且更易读:

    try(BufferedWriter out = new BufferedWriter(new OutputStreamWriter(
                new FileOutputStream(FileDescriptor.out), "ASCII"), 512)) {
        out.write(msg + '\n');
    } catch (UnsupportedEncodingException | IOException e) {
        logger.info("Test failed due to exception.");
        throw new IllegalStateException("Test failed", e);
    }

查看更多关于 try-with-resources 的信息如果您不熟悉语法。

关于java - 冲洗物体的正确位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30260570/

相关文章:

java - 为什么子类在向上转型时会做出响应?

java - Android 是否像 iPhone 一样在顶部栏中有一个互联网状态转圈?

java - 使用RegEx匹配字符串时如何忽略重复的字符串?

java - 在 java 中连接到远程 MS ACCESS 数据库

java - 如何将 Spring security 与自定义 java 类/自定义 spring 框架的类一起使用?

java - 无法识别“.class”错误?

java - 从 Java 源代码调用用 Java 编写的脚本

java - 我怎么知道我发送的电子邮件是否到达收件人java?

java - 集成测试服务器的数据库填充

java - 折线未清除