使用单个流读取目录中的所有对象文件



如果我有一个目录,里面装满了不同的对象文件,有没有一种方法可以将它们输入到我的应用程序中,而不需要每次都打开一个新的流?我目前正在使用ObjectInputStream,但我不介意使用另一种形式的IO。

例如,如果我将用户作为对象直接存储在硬盘上(每个用户都有自己的文件:name.user),有没有办法使用相同的流将它们全部加载回来?或者不可能看到每个单独的文件需要一个新的File对象吗?有办法绕过这个吗?

每个文件在后台都需要自己的流;这是没有办法的。但这并不能阻止您创建自己的InputStream,它为您管理这些内容,然后允许您从一个流中读取所有内容。

其想法是,当您尝试从CompoundObjectInputStream或其他文件中读取时,它会查看是否还有其他文件尚未处理,并使用另一个流打开一个文件(如果有的话),然后传递数据。当它到达该目录中没有更多文件的点时,CompoundObjectInputStream表示流的结束。

不,没有。每个物理文件都需要自己的FileInputStreamFileChannel或其他相应的native访问器。

请注意,File没有到物理文件的直接链接,它只是一个抽象路径名。

相关内容

  • 没有找到相关文章

最新更新