Falha ao gravar 'umlauts' (äöü) em alemão do console no arquivo de texto com java

Atualmente, estou tentando desesperadamente escrever tremas em alemão, lidos no console, em um arquivo de texto codificado em utf8 no Windows 7.

Aqui está o código para configurar o scanner:

Scanner scanner = new Scanner(System.in, "UTF8");

Aqui está o código para ler a string:

String s = scanner.nextLine();

Aqui está o código para gravar em um arquivo:

    OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(this.targetFile), "UTF8");

osw.write(s);

Infelizmente, em vez do exemplo "überraschung", o arquivo assim escrito é codificado em utf8, mas não exibe o trema. O que fazer?

questionAnswers(3)

yourAnswerToTheQuestion