Я знаю, что это не одна строка, но насколько я могу судить, это решает проблемы безопасности;
// This possibly creates a FileWriter, but maybe not
val writer = Try(new FileWriter(new File("filename")))
// If it did, we use it to write the data and return it again
// If it didn't we skip the map and print the exception and return the original, just in-case it was actually .write() that failed
// Then we close the file
writer.map(w => {w.write("data"); w}).recoverWith{case e => {e.printStackTrace(); writer}}.map(_.close)
Если вам не нужна обработка исключений, вы можете написать
writer.map(w => {w.writer("data"); w}).recoverWith{case _ => writer}.map(_.close)