主要目的是实现二进制的读写。

支持二进制读写的数据格式:

数值:Int、Long、Short,分别为4、8、2字节。

字符和字符串,其中字符Char为0~255,即1字节,而非java的二字节。


但是现在有个很大的问题,那就是Kotlin不提供基本数值类型Float和Double的位运算。我也是把整个框架都设计好了之后才发现的这个问题的,所以这两种数值在现有的设计框架下,我没有办法进行二进制读写。Orz

>代码下载:

http://download.csdn.net/download/shenpibaipao/9975574


接口设置:

interface WriteMethodInterface{
    fun write(bit:Boolean)
    fun write(number:Number)
    fun write(text:String)
    fun write(byte:Byte)
    fun write(char:Char)
    fun flush()
    fun fillBufferWith0()
    fun closeOut()
}
interface ReadMethodInterface{
    fun readBoolean():Boolean
    fun readInt():Int
    fun readShort():Short
    fun readFloat():Float
    fun readLong():Long
    fun readDouble():Double
    fun readStringLine():String
    fun readChar():Char
    fun readByte():Byte
    fun isEOF():Boolean
    fun closeIn()
    fun skip(bit:Int)
    fun read(bit:Int):List<Boolean>
}
四种读写模式:

enum class IOMode{
        Read,ReadWrite,Write,Overwrite
    }

直接从工厂类里Create相应的IOHelper即可对指定url的文件进行二进制读写了:

class IOHelperFactory(){
    fun createWriteIOhelper(url:String):WriteIOHelper{
        return WriteIOHelper(url)
    }
    fun createReadIOHelper(url:String):ReadIOHelper{
        return ReadIOHelper(url)
    }
    fun createReadWriteIOHelper(url:String):ReadWriteIOHelper{
        return ReadWriteIOHelper(url)
    }
    fun createOverWriteIOHelper(url:String):OverWriteIOHelper{
        return OverWriteIOHelper(url)
    }
}



Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐