gpt4 book ai didi

java - 创建流时是否应该显式创建文件?

转载 作者:行者123 更新时间:2023-12-01 12:42:09 25 4
gpt4 key购买 nike

我想知道 Java 的 FileInputStream(以及 FileOutputStream)的属性。创建它们时,您可以使用以下构造函数之一:

public FileInputStream(String name) throws FileNotFoundException

public FileInputStream(File file) throws FileNotFoundException

我经常看到(并编写)这样的代码:

InputStream in = new FileInputStream(new File("data.txt"));

您可以看到我在那里创建了一个文件。没有它我也可以做到:

InputStream in = new FileInputStream("data.txt");

从 JDK 源代码来看,它们的工作方式似乎几乎没有区别。以下是采用 String 的构造函数的源代码:

public FileInputStream(String name) throws FileNotFoundException {
this(name != null ? new File(name) : null);
}

所有这些与 FileOutputStream 基本相同。

使用其中一个构造函数是否是我不知道的约定,两者都有什么好处吗? FileInputStreamFileOutputStream 的情况是否不同?

最佳答案

尽管第一个构造函数 FileInputStream(String name) 可能更常用,但它只是第二个构造函数,即 FileInputStream(File file),它允许在我们将输入文件与 InputStream 链接之前,使用 File 类方法准确检查输入文件。

此外,创建FileOutputStream类对象的过程不依赖于适当文件的存在或可能缺乏。当您创建 FileOutputStream 类的对象时,它将在打开文件以供将来写入之前创建一个文件。但尝试打开只读文件将引发异常。

关于java - 创建流时是否应该显式创建文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24995617/

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