gpt4 book ai didi

java - 读取目录类路径资源时的行分隔符是什么?

转载 作者:行者123 更新时间:2023-11-30 03:19:20 27 4
gpt4 key购买 nike

我正在编写一些java代码,它将类路径上的子目录中的文件作为流列出。

InputStream is = YourClazz.class.getClassLoader().getResourceAsStream("subdirectory/")

这将返回 InputStream然后我将其转换为 String .

String fileNames = "";
try (final Scanner scanner = new Scanner(is).useDelimiter("\\A")) {
fileNames = scanner.hasNext() ? scanner.next() : "";
}

然后我使用了System.getProperty("line.seperator")阅读台词并独立于平台。

for (String fileName : fileNames.split(System.getProperty("line.separator"))) {
// todo
}

但在 Windows 上作为 fileNames 中的分隔符失败了是 \n而不是line.separator 。这是因为 Scanner ?我从 Read/convert an InputStream to a String 得到了这句话

更新基于以下答案,我现在使用此代码,它适用于 Windows 和 Linux:

InputStream in = YourClazz.class.getClassLoader().getResourceAsStream("subdirectory/")
try (final Scanner scanner = new Scanner(in)) {
while (scanner.hasNextLine()) {
final String fileName = scanner.nextLine();
// todo
}
}

最佳答案

不要手动处理分割线。让扫描仪为您做这件事。

List<String> lines = new ArrayList<>();
try (final Scanner scanner = new Scanner(is)) {
while(scanner.hasNextLine()){
lines.add(scanner.nextLine());
//or handle that line here instead of storing it in list
}
}

关于java - 读取目录类路径资源时的行分隔符是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31723689/

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