Я получаю строку из внешнего процесса. Я хочу использовать эту строку для создания имени файла, а затем писать в этот файл. Вот мой фрагмент кода, чтобы сделать это:
String s = ... // comes from external source
File currentFile = new File(System.getProperty("user.home"), s);
PrintWriter currentWriter = new PrintWriter(currentFile);
Если s содержит недопустимый символ, например "/" в ОС на основе Unix, тогда вызывается 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 надежным с этой целью.