我没有使用 Java 频道的经验。我想将字节数组写入文件。目前,我有以下代码:
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
使用此代码,将创建输出文件,如果存在则将其截断。此外,在 IntelliJ 调试器中,我可以看到它buffer
包含数据。此外,该行outChannel.write()
已成功调用而不会引发异常。但是,程序退出后,数据不会出现在输出文件中。
有人可以(a)告诉我 FileChannel API 是否是将字节数组写入文件的可接受选择,以及(b)如果是,应该如何修改上述代码以使其工作?