如果我的目录中填充了不同的目标文件,有没有一种方法可以将它们输入到我的应用程序中,而无需每次都打开新的流?我目前正在使用ObjectInputStream
,但我不介意使用其他形式的IO。
例如,如果我将我的用户直接存储到我的硬盘驱动器上作为对象(每个都有自己的文件: name.user ),有没有办法可以将它们全部加载到使用相同的文件中流?或者不可能看到每个文件需要一个新的File
对象?有办法解决这个问题吗?
答案 0 :(得分:2)
每个文件都需要在幕后拥有自己的流;没有办法解决这个问题。但这并不能阻止您为自己创建自己的InputStream
,然后允许您从一个流中读取所有内容。
当您尝试从CompoundObjectInputStream
或其他任何内容中读取内容时,它会查看是否还有其他文件尚未处理,如果是这样,则使用其他文件打开流,并传递数据。当它到达该目录中没有更多文件的位置时,CompoundObjectInputStream
表示流结束。
答案 1 :(得分:1)
不,没有。每个物理文件都需要自己的FileInputStream
,FileChannel
或其他相应的native
访问者。
请注意,File
没有直接链接到物理文件,它只是一个抽象路径名。