9
如何在Java中安全地编码字符串以用作文件名?
我正在从外部进程接收字符串。我想使用该字符串创建文件名,然后写入该文件。这是执行此操作的代码段: String s = ... // comes from external source File currentFile = new File(System.getProperty("user.home"), s); PrintWriter currentWriter = new PrintWriter(currentFile); 如果s包含无效字符,例如在基于Unix的OS中为'/',则(正确)引发java.io.FileNotFoundException。 如何安全地编码字符串,以便可以将其用作文件名? 编辑:我希望的是一个为我做的API调用。 我可以做这个: String s = ... // comes from external source File currentFile = new File(System.getProperty("user.home"), URLEncoder.encode(s, "UTF-8")); PrintWriter currentWriter = new PrintWriter(currentFile); 但是我不确定URLEncoder是否可用于此目的。