java - 关闭 BufferedReader()?

标签 java

我编写了一段代码,可以读取网页并将其传输到 .txt 文件中。问题是输出文件(something.txt)被锁定(如果有帮助的话我使用OS X)。我发现未关闭的 BufferedReader() 可能有问题,但它似乎已关闭。谢谢。

PrintStream ps = new PrintStream(new File("/Users/MyName/Desktop/something.txt"));
URL myUrl = new URL("webPage");
BufferedReader in = new BufferedReader(new InputStreamReader(myUrl.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
    ps.println(inputLine);
    System.out.println(inputLine);
}
in.close();
ps.close();

最佳答案

如果您使用的是 Java 7,那么最好的方法是 try-with-resources,它保证 inps 都将关闭

    try (PrintStream ps = new PrintStream(new File("/Users/MyName/Desktop/something.txt"));
            BufferedReader in = new BufferedReader(new InputStreamReader(
                    new URL("webPage").openStream()))) {
        String inputLine;
        while ((inputLine = in.readLine()) != null) {
            ps.println(inputLine);
            System.out.println(inputLine);
        }
    }

关于java - 关闭 BufferedReader()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16677353/

相关文章:

java - 运行项目时出错

java - 如何在不使用 javascript 的情况下在 sightly 页面中使用 sling 服务?

java - 如何优雅地关闭procrun?

java - 是什么导致了 java.lang.IllegalMonitorStateException

java - 如何从 ArrayList<Object> 填充 ArrayList<String>

java - 为什么我在使用 wait 和 notification 在 java 中实现线程间通信时出现错误?

java - Java 中是否有可能从 2 个 Stream 中创建一个新 Stream?

java - 如何添加jlabel图像悬停?

Java 在表格单元格中添加 JLayeredPane?

Sin 和 ToRadians 的 Java 奇怪行为