Мое приложение использует Java-класс RandomAccessFile для чтения/записи байтов в файл на SD-карте случайно с помощью реализации интерфейса SeekableByteChannel. Теперь мне нужно переписать его для Android 5.0 с новым Lollipop API.Как получить произвольный доступ к файлу на SD-карте с помощью API, представленного для Lollipop?
Я нашел the only way следующим образом:
InputStream inputStream = getContentResolver().openInputStream(uri);
и написать:
ParcelFileDescriptor pfd = getActivity().getContentResolver().openFileDescriptor(uri, "w");
FileOutputStream fileOutputStream = new FileOutputStream(pfd.getFileDescriptor());
из/в файл в новом API.
Я хотел бы иметь возможность устанавливать канал в некотором случайном положении и читать/писать байты в эту позицию. Возможно ли это сделать в новом SDK 21? Является ли новый SDK таким способом получение каналов:
FieInputChannel fieInputChannel = fileInputStream.getChannel();
FieOutputChannel fieOutputChannel = fileOutputStream.getChannel();
или какой-либо другой подход?