Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 赋值不是表达式,在此上下文中只允许表达式-将Java转换为Kotlin时出错_Android_Kotlin - Fatal编程技术网

Android 赋值不是表达式,在此上下文中只允许表达式-将Java转换为Kotlin时出错

Android 赋值不是表达式,在此上下文中只允许表达式-将Java转换为Kotlin时出错,android,kotlin,Android,Kotlin,我在Java中管理良好的代码和项目。但是我需要在Kotlin中从它开发另一个项目。因此,我在Kotlin中尽可能地转换了所有代码。但是有用于压缩/解压文件的ZipFileManager.kt代码 下面是代码(Kotlin): 我还尝试管理循环,如: do { ze = zin.nextEntry } while (ze != null) 但文件未正确解压缩或已损坏。因此,如果任何机构有管理这种类型循环的想法,那么它将非常有用。我正在将您的Java代码转换为Kotlin 我之前已经面对过

我在
Java
中管理良好的代码和项目。但是我需要在
Kotlin
中从它开发另一个项目。因此,我在
Kotlin
中尽可能地转换了所有代码。但是有用于压缩/解压文件的
ZipFileManager.kt
代码

下面是代码(
Kotlin
):

我还尝试管理循环,如:

do {
    ze = zin.nextEntry
} while (ze != null)

但文件未正确解压缩或已损坏。因此,如果任何机构有管理这种类型循环的想法,那么它将非常有用。

我正在将您的
Java
代码转换为
Kotlin

我之前已经面对过这个问题
赋值不是表达式,在此上下文中只允许表达式

使用此代码这里是您的解决方案

object ZipFileManager {

private val BUFFER_SIZE = 6 * 1024
@Throws(IOException::class)
fun zip(files: Array<String>, zipFile: String) {
    var origin: BufferedInputStream? = null
    val out = ZipOutputStream(BufferedOutputStream(FileOutputStream(zipFile)))
    try {
        val data = ByteArray(BUFFER_SIZE)

        for (file in files) {
            val fi = FileInputStream(file)
            origin = BufferedInputStream(fi, BUFFER_SIZE)
            try {
                val entry = ZipEntry(file.substring(file.lastIndexOf("/") + 1))
                out.putNextEntry(entry)
                var count: Int= origin.read(data, 0, BUFFER_SIZE);
                while (count != -1) {
                    out.write(data, 0, count)
                    count = origin.read(data, 0, BUFFER_SIZE)
                }
            } finally {
                origin.close()
            }
        }
    } finally {
        out.close()
    }
}

fun unzip(zipFileUrl: String, fileLocation: String) {
    try {
        val f = File(fileLocation)
        if (!f.isDirectory) {
            f.mkdirs()
        }
        ZipInputStream(FileInputStream(zipFileUrl)).use { zin ->
            var ze: ZipEntry? = null
            ze = zin.nextEntry
            while (ze != null) {
                //                    Log.e("UnZipFILE", "Unzipping....");
                val path = fileLocation + ze!!.name

                if (ze.isDirectory) {
                    val unzipFile = File(path)
                    if (!unzipFile.isDirectory) {
                        unzipFile.mkdirs()
                    }
                } else {
                    FileOutputStream(path, false).use { fout ->
                        val buffer = ByteArray(1024)
                        var read: Int= zin.read(buffer)
                        while (read != -1) {
                            fout.write(buffer, 0, read)
                            read = zin.read(buffer)
                        }
                        zin.closeEntry()
                    }
                }
                ze = zin.nextEntry
            }
        }
    } catch (e: Exception) {
        e.printStackTrace()
        Log.e("UnZipException", Log.getStackTraceString(e))
    }
  }
}
对象ZipFileManager{
专用val缓冲区大小=6*1024
@抛出(IOException::类)
趣味zip(文件:数组,zipFile:String){
变量来源:BufferedInputStream?=null
val out=ZipOutputStream(BufferedOutputStream(FileOutputStream(zipFile)))
试一试{
val数据=字节数组(缓冲区大小)
用于(文件中的文件){
val fi=文件输入流(文件)
原点=BufferedInputStream(fi,缓冲区大小)
试一试{
val entry=ZipEntry(file.substring(file.lastIndexOf(“/”+1))
出口、出口(入口)
变量计数:Int=origin.read(数据,0,缓冲区大小);
而(计数!=-1){
out.write(数据、0、计数)
计数=原点读取(数据,0,缓冲区大小)
}
}最后{
origin.close()
}
}
}最后{
结束
}
}
有趣的解压(zipFileUrl:String,fileLocation:String){
试一试{
val f=文件(文件位置)
如果(!f.isDirectory){
f、 mkdirs()
}
ZipInputStream(FileInputStream(zipFileUrl))。使用{zin->
变量ze:ZipEntry?=null
ze=zin.nextery
while(ze!=null){
//Log.e(“解压缩文件”、“解压缩…”);
val path=fileLocation+ze!!.name
国际单项体育联合会(理事会){
val unzipFile=文件(路径)
如果(!unzipFile.isDirectory){
unzipFile.mkdirs()
}
}否则{
FileOutputStream(路径,false)。使用{fout->
val缓冲区=字节数组(1024)
变量读取:Int=zin.read(缓冲区)
while(读取!=-1){
四次写入(缓冲区,0,读取)
读取=锌读取(缓冲区)
}
zin.closeEntry()
}
}
ze=zin.nextery
}
}
}捕获(e:例外){
e、 printStackTrace()
Log.e(“UnZipException”,Log.getStackTraceString(e))
}
}
}

好的,我正在努力。我的荣幸是,互相帮助。-:)
do {
    ze = zin.nextEntry
} while (ze != null)
object ZipFileManager {

private val BUFFER_SIZE = 6 * 1024
@Throws(IOException::class)
fun zip(files: Array<String>, zipFile: String) {
    var origin: BufferedInputStream? = null
    val out = ZipOutputStream(BufferedOutputStream(FileOutputStream(zipFile)))
    try {
        val data = ByteArray(BUFFER_SIZE)

        for (file in files) {
            val fi = FileInputStream(file)
            origin = BufferedInputStream(fi, BUFFER_SIZE)
            try {
                val entry = ZipEntry(file.substring(file.lastIndexOf("/") + 1))
                out.putNextEntry(entry)
                var count: Int= origin.read(data, 0, BUFFER_SIZE);
                while (count != -1) {
                    out.write(data, 0, count)
                    count = origin.read(data, 0, BUFFER_SIZE)
                }
            } finally {
                origin.close()
            }
        }
    } finally {
        out.close()
    }
}

fun unzip(zipFileUrl: String, fileLocation: String) {
    try {
        val f = File(fileLocation)
        if (!f.isDirectory) {
            f.mkdirs()
        }
        ZipInputStream(FileInputStream(zipFileUrl)).use { zin ->
            var ze: ZipEntry? = null
            ze = zin.nextEntry
            while (ze != null) {
                //                    Log.e("UnZipFILE", "Unzipping....");
                val path = fileLocation + ze!!.name

                if (ze.isDirectory) {
                    val unzipFile = File(path)
                    if (!unzipFile.isDirectory) {
                        unzipFile.mkdirs()
                    }
                } else {
                    FileOutputStream(path, false).use { fout ->
                        val buffer = ByteArray(1024)
                        var read: Int= zin.read(buffer)
                        while (read != -1) {
                            fout.write(buffer, 0, read)
                            read = zin.read(buffer)
                        }
                        zin.closeEntry()
                    }
                }
                ze = zin.nextEntry
            }
        }
    } catch (e: Exception) {
        e.printStackTrace()
        Log.e("UnZipException", Log.getStackTraceString(e))
    }
  }
}