📜  Java中的 PrintStream close() 方法及示例(1)

📅  最后修改于: 2023-12-03 14:42:51.123000             🧑  作者: Mango

Java中的 PrintStream close() 方法及示例

介绍

java.io.PrintStream 类是一个在内存中存储文本的缓冲区,它可以将文本写入到输出流中。close() 方法是 PrintStream 类的一个实例方法,用于关闭流并释放系统资源。

方法签名
public void close()
参数说明

该方法没有参数。

返回值

该方法没有返回值。

异常

如果在关闭流时出现 I/O 错误,将抛出 IOException 异常。

示例
打印字符串并关闭流
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;

public class ClosePrintStreamExample {
  public static void main(String[] args) {
    String filePath = "example.txt";
    try (PrintStream ps = new PrintStream(new File(filePath))) {
      ps.println("Hello World");
      ps.println("Java Programming");
      ps.close();
      System.out.println("PrintStream closed.");
    } catch (FileNotFoundException e) {
      System.err.println("Failed to create PrintStream: " + e.getMessage());
    }
  }
}

在上面的示例中,我们创建了一个 PrintStream 对象并将其连接到一个输出文件,然后使用该对象写入两行文本,最后通过调用 close() 方法关闭 PrintStream 对象并释放系统资源。如果没有异常抛出,我们就会看到一条消息打印到控制台上,表明 PrintStream 已经成功关闭。

关闭捕获的异常
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;

public class ClosePrintStreamExample2 {
  public static void main(String[] args) {
    String filePath = "example.txt";
    PrintStream ps = null;
    try {
      ps = new PrintStream(new File(filePath));
      ps.println("Hello World");
      ps.println("Java Programming");
      ps.close();
      System.out.println("PrintStream closed.");
    } catch (FileNotFoundException e) {
      System.err.println("Failed to create PrintStream: " + e.getMessage());
    } finally {
      if (ps != null) {
        try {
          ps.close();
          System.out.println("PrintStream closed in finally block.");
        } catch (IOException e) {
          System.err.println("Failed to close PrintStream: " + e.getMessage());
        }
      }
    }
  }
}

在上面的示例中,我们在 try 块中创建了一个 PrintStream 对象并进行了一些操作,然后在 catch 块中捕获了可能的异常。在 finally 块中,我们使用 ps.close() 再次尝试关闭 PrintStream 对象,并捕获任何可能抛出的异常。使用 finally 块来关闭流是一个良好的做法,因为它确保在异常被抛出时也会正确地释放系统资源。

总结

close() 方法是 PrintStream 类的一个实例方法,用于关闭流并释放系统资源。我们可以使用 try-with-resources 语句来自动关闭该流,或者在 finally 块中手动关闭它。在关闭流时,需要注意处理可能出现的 IOException 异常。