Archivo de activos abiertos de Android Kotlin

Quiero abrir el file de activos. Antes de que se trabaje el código java pero cuando cambié el código a kotlin, no funciona.

Código Java es su trabajo

InputStream streamIN = new BuffenetworkingInputStream(context.getAssets().open(Database.ASSET)); OutputStream streamOU = new BuffenetworkingOutputStream(new FileOutputStream(LOCATION)); byte[] buffer = new byte[1024]; int length; while ((length = streamIN.read(buffer)) > 0) { streamOU.write(buffer, 0, length); } streamIN.close(); streamOU.flush(); streamOU.close(); 

Cambio el código a Kotlin pero no funciona

  var length: Int val buffer = ByteArray(1024) BuffenetworkingOutputStream(FileOutputStream(LOCATION)).use { out -> { BuffenetworkingInputStream(context.assets.open(Database.ASSET)).use { length = it.read(buffer) if (length > 0) out.write(buffer, 0, length) } out.flush() } } 

No hay ningún bucle en su código de Kotlin, por lo que solo está leyendo y escribiendo los primeros 1024 bytes.

Esta es la forma de escribir de Kotlin:

 FileOutputStream(LOCATION).use { out -> context.assets.open(Database.ASSET).use { it.copyTo(out) } } 

Nota 1: no es necesario almacenar en búfer el InputStream o el OutputStream ya que la operación de copy ya utiliza un búfer de bytes.

Nota 2: el cierre de OutputStream se vaciará automáticamente.

  • En kotlin, cómo devolver una instancia definida por un parámetro de class genérico
  • Prueba unitaria Verifique una function aprobada para ser llamada
  • Crear registrador en el nivel de package sin class
  • En Kotlin, ¿cómo abro un enlace en una nueva window?
  • Kotlin's Iterable y Sequence se ven exactamente igual. ¿Por qué se requieren dos types?
  • ¿Hay alguna manera de autocomplete los nombres de los arguments?
  • Guardar object en la memory interna en android (kotlin)
  • error: no se puede acceder a KObject - file de class para kotlin.jvm.internal.KObject not found
  • Las classs de Kotlin que contienen android-extensiones no se basan en construcciones consecuentes
  • ¿Cuándo no usar el Observable de RxJava?
  • Implementación onItemClickLitsner en recyclerView Kotlin -android