Android Kotlin – подфайл или MemoryMappedFile?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Android Kotlin – подфайл или MemoryMappedFile?

Сообщение Anonymous »

У меня есть файл, который представляет собой пакет других файлов. (по сути, объединение файлов)
В моем приложении есть несколько вещей, которые используют обычные файлы (аудио, изображения, видео и т. д.).
Но поскольку я упаковываю эти файлы в коллекции, я не могу просто передать их подпрограммам, использующим файлы. (На самом деле я передаю пути или строки путей, поэтому мне придется это изменить, но некоторые вещи, использующие файлы, являются кодом библиотеки)
Что мне нужно сделать, это передать им файл, который на самом деле только просмотр файла внутри «файла коллекции». (поэтому чтение должно быть ограничено только интервалом внутри файла)
Есть ли что-нибудь в котлине или Java, что могло бы расставить точки для меня? в основном я передаю начало и конец или длину и файл, и он возвращает файл, который для всех практических целей выглядит так, как будто этот фрагмент файла является реальным файлом? Это все только для чтения.
Чего я не хочу, так это записывать файл во временный файл и загружать его. Это бессмысленно и является пустой тратой времени и долговечности.
Я думаю, что мне, возможно, придется расширить File, но надеюсь, что это уже сделано. Однако я ничего не могу найти.
Чтобы внести ясность:
mFileDescriptor = MemoryFileUtil.getParcelFileDescriptor(file!!)
выдает java.lang.ExceptionInInitializerError
Вызвано: java.lang.RuntimeException: java.lang.NoSuchMethodException: android.os.MemoryFile.getParcelFileDescriptor []
Если я записываю файл в файл tmp, все работает нормально. Я пробовал
mFileDescriptor = ParcelFileDescriptor.fromFd(file!!.fd.toInt())
mFileDescriptor = ParcelFileDescriptor.dup(file!!.fd)
использует getFileDescriptor в MemoryFile, но это тоже не удается.
и другие, которые пытаются получить файл MemoryFile. дескриптор, использующий отражение. Ошибка бесполезна для объяснения того, что на самом деле происходит, но, похоже, она связана с тем, что дескриптор либо недействителен, либо ParcelFileDescriptor не работает с MemoryFile.

Подробнее здесь: https://stackoverflow.com/questions/792 ... mappedfile
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»