gpt4 book ai didi

java - org.apache.commons.io.FileUtils.readFileToString 和文件路径中的空白

转载 作者:搜寻专家 更新时间:2023-11-01 01:10:44 27 4
gpt4 key购买 nike

我正在尝试在 Windows 7 上使用 org.apache.commons.io 版本 2.4 将文件读取为字符串。

String protocol = url.getProtocol();
if(protocol.equals("file")) {
File file = new File(url.getPath());
String str = FileUtils.readFileToString(file);
}

但它失败了:

java.io.FileNotFoundException: File 'C:\workspace\project\resources\test%20folder\test.txt' does not exist

但如果我这样做:

String protocol = url.getProtocol();
if(protocol.equals("file")) {
File file = new File("C:\\workspace\\resources\\test folder\\test.txt");
String str = FileUtils.readFileToString(file);
}

我工作正常。因此,当我手动输入带有空格/空格的路径时,它可以工作,但是当我从 url 创建它时,它不会。

我错过了什么?

最佳答案

试试这个:

File file = new File(url.toURI())

顺便说一句,既然您已经在使用 Apache Commons IO(对您有好处!),为什么不用流而不是文件和路径呢?

IOUtils.toString(url.openStream(), "UTF-8");

我正在使用 IOUtils.toString(InputStream, String) .请注意,我显式传递编码以避免操作系统依赖性。你也应该这样做:

String str = FileUtils.readFileToString(file, "UTF-8");

关于java - org.apache.commons.io.FileUtils.readFileToString 和文件路径中的空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14247344/

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