Господа, всем добрый вечер.
Изучая новую для себя тему о FileChannel столкнулся с проблемой записи данных в файл.
Дело в том, что при попытке записать в файл частично заполненный ByteBuffer записываются только нули, в то время как другие байты просто игнорируются.
Компиляция кода:
try(FileOutputStream fileOutputStream2 = new FileOutputStream("D:\\file3.txt");
FileChannel fileChannelWrite2 = fileOutputStream2.getChannel())
{
int wrote1;
byte[] byteArray4 = "Hello world from ByteBuffer and FileChannel!".getBytes();
System.out.println("Кол-во байт в массиве byteArray4: " + byteArray4.length);
ByteBuffer byteBuffer3 = ByteBuffer.allocate(byteArray4.length);
byteBuffer3.put(byteArray4,0,10);
byte[] byteArray5 = byteBuffer3.array();
for (int i = 0; i < byteArray5.length; i++)
{
System.out.print(byteArray5[i] + " ");
}
wrote1 = fileChannelWrite2.write(byteBuffer3);
System.out.println("\nКол-во записанных байт в file3.txt: " + wrote1);
System.out.println();
}
catch (IOException ioException)
{
System.out.println(ioException.printStackTrace(););
}