Comment utiliser java.nio.les canaux.FileChannel à écrire un octet dans un fichier - notions de base

Je n'ai pas d'expérience à l'aide de Java canaux. Je voudrais écrire un tableau d'octets dans un fichier. Actuellement, j'ai le code suivant:

String outFileString = DEFAULT_DECODED_FILE; //Valid file pathname
FileSystem fs = FileSystems.getDefault();
Path fp = fs.getPath(outFileString);

FileChannel outChannel = FileChannel.open(fp, EnumSet.of(StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.WRITE));

//Please note: result.getRawBytes() returns a byte[]
ByteBuffer buffer = ByteBuffer.allocate(result.getRawBytes().length);
buffer.put(result.getRawBytes());

outChannel.write(buffer); //File successfully created/truncated, but no data

Avec ce code, le fichier de sortie est créé, et tronquée si elle existe. Aussi, dans l'Ide, débogueur, je peux voir que buffer contient des données. Aussi, la ligne outChannel.write() est appelé avec succès, sans jeter une exception. Cependant, après les sorties de programme, les données n'apparaissent pas dans le fichier de sortie.

Quelqu'un peut-il (a) dites-moi si le FileChannel API est un choix acceptable pour l'écriture d'un tableau d'octets dans un fichier, et (b) dans l'affirmative, comment le code ci-dessus être modifié pour qu'il fonctionne?