アセットファイルを開きます。 Javaコードが動作する前に、私はkotlinにコードを変更しても機能しません。Android Kotlin公開アセットファイル
Javaコードの作業
InputStream streamIN = new BufferedInputStream(context.getAssets().open(Database.ASSET));
OutputStream streamOU = new BufferedOutputStream(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();
あなただけですので、私はKotlinにコードを変更するが、それはあなたのKotlinコードにはループがありません
var length: Int
val buffer = ByteArray(1024)
BufferedOutputStream(FileOutputStream(LOCATION)).use {
out ->
{
BufferedInputStream(context.assets.open(Database.ASSET)).use {
length = it.read(buffer)
if (length > 0) out.write(buffer, 0, length)
}
out.flush()
}
}
正確には動作しません。例外はありますか? – Mibac
例外はありません。私のアプリケーションをデバッグしていたとき、デバッガはラムダ関数(BufferedOutputStream)の中に入っていません – kibar