Вы можете использовать это регулярное выражение [^a-zA-Z0-9\s.-]
или [^a-zA-Z0-9 .-]
\s
соответствует пробелу, а
(символ пробела) соответствует только пробелу.
Так что в этом случае, если выдля сопоставления пробелов используйте это:
filename.replaceAll("[^a-zA-Z0-9\\s.-]", "");
И если вы хотите сопоставить только пробелы, используйте это:
filename.replaceAll("[^a-zA-Z0-9 .-]", "");