ファイル名として不正な文字を任意の文字に置換

とりあえずWindowsの場合ということで…

String src = "abc_ABC_あいう_亜伊卯_アイウ_123_123_\\_/_:_*_?_\"_<_>_.txt";
// [/, *, ?, ", <, >, \] にマッチ
Pattern illegalFileNamePattern = Pattern.compile("[(\\|/|:|\\*|?|\"|<|>|\\\\|)]");
String fileName = illegalFileNamePattern.matcher(src).replaceAll("-");
System.out.println("src        :"+src);
System.out.println("fileName   :"+fileName);

実行結果

src        :abc_ABC_あいう_亜伊卯_アイウ_123_123_\_/_:_*_?_"_<_>_.txt
fileName   :abc_ABC_あいう_亜伊卯_アイウ_123_123_-_-_-_-_-_-_-_-_.txt

ファイルパスをOKとする場合

// [\]をスルー
Pattern illegalFileNamePattern = Pattern.compile("[(\\|/|:|\\*|?|\"|<|>|)]");