Самый простой способ - использовать
File("aaa").readBytes()
, который прочитает весь файл в ByteArray
.Но вы должны тщательно знать, что у вас достаточно оперативной памяти в куче, чтобы сделать это
ByteArray можно создать с помощью вызова ByteArray(100)
, где 100
- его размер
Для RandomAccessFile
, это, вероятно, лучше использовать в функции readFully
, которая читает именно запрошенное количество байтов.
Классический подход позволяет читать файл по частям, например,
val buff = ByteArray(1230)
File("aaa").inputStream().buffered().use { input ->
while(true) {
val sz = input.read(buff)
if (sz <= 0) break
///at that point we have a sz bytes in the buff to process
consumeArray(buff, 0, sz)
}
}