gpt4 book ai didi

Android Kotlin 打开 Assets 文件

转载 作者:行者123 更新时间:2023-12-02 12:29:50 32 4
gpt4 key购买 nike

我想打开 Assets 文件。在 java 代码工作之前,但是当我将代码更改为 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 但它不起作用
    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()
}
}

最佳答案

Kotlin 代码中没有循环,因此您只读取和写入前 1024 个字节。

这是 Kotlin 的编写方式:

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

注1:您不需要缓冲 InputStream 或 OutputStream 因为复制操作本身已经使用了字节缓冲区。

注2:关闭 OutputStream 将自动刷新它。

关于Android Kotlin 打开 Assets 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45133041/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com