尝试Files
:
final Path target = Paths.get("tééé ê.mp3");
try (
final OutputStream out = Files.newOutputStream(target, StandardOpenOption.CREATE_NEW);
) {
// write
}
现在,如果这是您的文件系统不支持此类文件名的问题,您将得到一个InvalidPathException
;。不同于File
,新的API拒绝创建可能最终无法读取的文件名。
如果确实无法创建路径,那么,您将必须找到某种逃避和撤消逃避的方法。也许写一个别名到某种数据库之类的东西。
请注意,InvalidPathException
是 未经检查的 ; 因此,您必须明确捕获此异常。另请注意,如果JVM使用的当前字符编码不适合生成文件名,则可能会出现此异常。