This command should create a sparse file:
channel = Files.newByteChannel(path, EnumSet.of(CREATE,WRITE,SPARSE));
However, it just creates a regular (non-sparse) file. I can manually turn it into a sparse file using fsutil
on the command line, but how can I get the Java Runtime to do this?
I am using Java 11 on Windows 10 (NTFS).
Apparently, creating a sparse file only works with OpenOption
CREATE_NEW
(which replaces any existing file), but not with CREATE
(which only creates the file if it doesn't exist).
channel = Files.newByteChannel(path, EnumSet.of(CREATE_NEW,WRITE,SPARSE));