Вы используете IDE?Что находится внутри переменной 'filename' (это фактическое содержимое).Вторая строка не нужна.
Ошибка из трассировки стека, указывающая на BufferedWriter bw = new BufferedWriter(new FileWriter(file));
или desktop.open(file);
РЕДАКТИРОВАТЬ:
Вы также можете попробовать следующий код
File myCSVFile; //reference to your csv file here
String execString = "excel " + myCSVFile.getAbsolutePath();
Runtime run = Runtime.getRuntime();
try {
Process pp = run.exec(execString);
} catch(Exception e) {
e.printStackTrace();
}
Ошибка java.io появляется, потому что не удается открыть файл.Приведенный выше код заставит Excel открыть ваш файл в качестве аргумента.Вам необходимо установить переменную среды, чтобы команда «excel» в командной строке открывала приложение Excel.
Если вы планируете выпустить это приложение для использования, вы можете убедиться, что Excel установлен, проверив реестр, а затем проверив место установки Excel оттуда.