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))
}
}
}