- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
DirectoryStream
的唯一用法我见过的使用类型 Path
作为其类型参数,DirectoryStream<Path>
来自Files.newDirectoryStream(Path)
.
此外,由于 documentation 中的以下语句,我不明白为什么它允许任何类型:
If hasNext method returns true, and is followed by a call to the next method, it is guaranteed that the next method will not throw an exception due to an I/O error, or because the stream has been closed.
这一定意味着它会检查 Path
可以预先访问,因此不能是通用类型。
最佳答案
Why does
java.nio.file.DirectoryStream
use unbounded generics?The only usage of
DirectoryStream
that I have seen uses the typePath
as its type parameter,DirectoryStream<Path>
which comes fromFiles.newDirectoryStream(Path)
.
如果你看SecureDirectoryStream
, 该接口(interface)扩展了 DirectoryStream
有一个无限泛型。然而,唯一的具体实现SecureDirectoryStream
也用 Path
参数化.
所以,最合理的解释是:
File
的目录流, 但它被放弃了......完全摆脱参数为时已晚。无论哪种方式,目前该参数都是无害的异常。
This must mean it checks whether the Path is accessible beforehand and therefore cannot be a generic type.
参数可能是无界的,因为 Path
没有合适的通用 super 接口(interface)和 File
.它不能真的是任何类型的事实是......不幸的是,但绝不是唯一的。在其他情况下,隐含的类型要求未在静态类型中表达。例如:
ObjectOutputStream.writeObject(Object)
如果对象未实现 Serializable
,方法将失败.
Arrays.sort(Object[])
如果数组元素没有全部实现 Comparable
,方法将失败.
而且我希望还有其他示例,其中泛型类的某些参数化没有什么意义。
关于java - 为什么 java.nio.file.DirectoryStream 使用无限泛型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41660795/
DirectoryStream stream = Files.newDirectoryStream( DirectoryPath, ".txt" ); 我有一个目录流,其中保存在指定目录路径中找到的所
我想显示特定文件夹中的所有文件扩展名,并使用 DirectoryStream 给出每个扩展名的总数。 现在我只显示该文件夹中的所有文件,但我如何才能只显示它们的扩展名呢?我还应该获取这些文件的扩展名,
DirectoryStream的文档中明确指出: The iterator is weakly consistent. It is thread safe but does not freeze th
我对 DirectoryStream 有疑问.我目前尝试为我的应用程序构建一个 LogViewer,它应该遍历目录中的所有文件并将它们添加到网格中。 出于测试目的,它目前只包含一个文件。 代码如下:
读取 DirectoryStream 的 API 时我错过了很多功能。首先,它建议使用 for 循环从流转到 List。 .我想念它是 DirectoryStream不是 Stream . 如何制作
我想使用 java 8 DirectoryStream 来查找与 glob 模式匹配的文件,但我想在 Groovy 中执行此操作(至少 2.4)。不过,我很难找到如何做到这一点的示例,因为 groov
我正在尝试使用 NIO 类过滤隐藏文件。 当我在 Windows 10 上运行附加的代码时,我得到以下输出: Files: c:\Documents and Settings
我有以下代码: Map fileContentsByName = new HashMap(); try (DirectoryStream directoryStream
我已经对 Streams 进行了一些测试,特别是对 nio-package 的 DirectoryStreams 进行了测试。我只是尝试获取按上次修改日期和大小排序的目录中所有文件的列表。 旧 Fil
我在一个名为 Test.java 的类中有这个函数,它包括; public List getAllFoldersInTmp(String directory) throws IOException {
在列出目录中的文件时,我注意到一个奇怪的行为。我的情况是我有一个保存在数据库中的txt文件列表,与这些数据文件相对应的是xml文件,其中包含每个txt的一些标签,这些标签与其在db中的元属性相关联。
这段代码可以变成lambda表达式吗?我尝试了很多,但我没有得到它。 DirectoryStream.Filter dirFilter = new DirectoryStream.Filter() {
虽然我已经看到了很多类似问题的答案,但我无法使以下代码按我认为应该的方式工作: File dataDir = new File("C:\\User\\user_id"); PathMatcher pa
我正在尝试研究 newDirectoryStream 的 DirecoryStream.Filter 示例,我可以在其中列出目录下的所有文件(及其所有子目录) 超过 60 天,例如。 Director
我想列出指定目录中的所有文件以及该目录中的子目录。不应列出任何目录。 我当前的代码如下。它不能正常工作,因为它只列出指定目录中的文件和目录。 我该如何解决这个问题? final List files
DirectoryStream 和 File.list() 在性能上有区别吗 我曾尝试在 Linux 平台上跟踪这两个 java 程序,它使用具有相同参数的 getdents64 系统调用。在我看来两
DirectoryStream的唯一用法我见过的使用类型 Path作为其类型参数,DirectoryStream来自Files.newDirectoryStream(Path) . 此外,由于 doc
所以我“听说”Java 7 中引入的 DirectoryStream 比传统的目录列表方法更快。然而,对我来说情况并非如此。列出整个目录可能会更快,但是当过滤掉文件并仅接受文件夹时,需要更多时间。例如
我想返回路径流(这些是位于某个目录中的文件)。我最初的方法是这样的: DirectoryStream getFiles(Path dir) throws IOException { Files
我是一名优秀的程序员,十分优秀!