java – getResourceAsStream的目录列表行为是否记录在何处?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – getResourceAsStream的目录列表行为是否记录在何处?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1980字,纯文字阅读大概需要3分钟。
内容图文
![java – getResourceAsStream的目录列表行为是否记录在何处?](/upload/InfoBanner/zyjiaocheng/789/dd8906be0358487d88eac9fe53b5d3ee.jpg)
各种答案(例如Get a list of resources from classpath directory)表示如果在目录上调用getResourceAsStream,则返回的流将包含目录中的项目列表,每行一个.这似乎没有记录在ClassLoader Javadoc中.它是否在其他任何地方指定,或者它只是人们依赖的实施细节?
解决方法:
它看起来不像在任何地方都适当记录.
从ClassLoader.getResourceAsStream的Javadoc可以稍微推断出getResourceAsStream与执行getResource相同,然后在生成的URL上调用URL.openStream,因为Javadoc指向getResource方法,该方法返回URL.但它显然没有说明这种准确性.
public InputStream getResourceAsStream(String name)
Returns an input
stream for reading the specified resource. The search order is
described in the documentation forgetResource(String)
.
然后,更好地记录了URL.openStream:
public final InputStream openStream() throws IOException
Opens a connection to this URL and returns an InputStream for reading
from that connection. This method is a shorthand for:
openConnection().getInputStream()
然后,由于URL.openConnection()返回URLConnection的子类,并假设您在类路径中使用了本地目录,因此需要查看FileURLConnection,然后查看方法getInputStream.
正如您在下面的方法中所看到的,如果类路径中的file:/// URL指向一个目录,那么它将以排序的方式返回一个包含目录中所有文件的InputStream. (有趣的细节,它使用平台默认编码 – 很高兴知道你什么时候想要读回数据)
public synchronized InputStream getInputStream()
throws IOException {
int iconHeight;
int iconWidth;
connect();
if (is == null) {
if (isDirectory) {
FileNameMap map = java.net.URLConnection.getFileNameMap();
StringBuffer buf = new StringBuffer();
if (files == null) {
throw new FileNotFoundException(filename);
}
Collections.sort(files, Collator.getInstance());
for (int i = 0 ; i < files.size() ; i++) {
String fileName = files.get(i);
buf.append(fileName);
buf.append("\n");
}
// Put it into a (default) locale-specific byte-stream.
is = new ByteArrayInputStream(buf.toString().getBytes());
} else {
throw new FileNotFoundException(filename);
}
}
return is;
}
结论:
它没有正确记录,它是一个实现细节,它可能会在未来的版本中发生变化,尽管这不太可能.
内容总结
以上是互联网集市为您收集整理的java – getResourceAsStream的目录列表行为是否记录在何处?全部内容,希望文章能够帮你解决java – getResourceAsStream的目录列表行为是否记录在何处?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。