一个Android 通用方便快捷使用IO库

@TOC

前言

我们平时需要进行文件和文件夹的创建,写入文本,图片,xls表格文件,自己临时写代码略显繁琐,甚至不想写,还有SharedPreferences 定义缓存配置存储之类的,虽然已经有MMKV框架了,但这些在项目大一点的时候定义的key 很难管理,所以基于以上问题痛点,I-and-io 库诞生了


一、I-and-io是什么?

是一个方便我们开发者方便快捷高效,进行io操作读写文件的一个库

二、使用步骤

1.增加Maven仓库地址

代码如下(示例):

c 复制代码
        maven {
            url 'https://packages.aliyun.com/maven/repository/2386483-release-mhUqVd'
            credentials {
                username = "6166b8fa89e1d5005a9f5792"
                password = "W49P9mYH7aoH"
            }
        }

2.增加库依赖

c 复制代码
    implementation 'com.lyn:io:1.1.2'

3.文件创建读写操作代码实列

c 复制代码
        //创建test文件夹
        FolderFactory.create("test",filesDir.absolutePath)
        
        //获取test文件夹抽象实列
        val folder = FolderFactory.get("test")
        
        //创建hello.txt 并写入 hello world 文本内容
        folder?.writeFile("hello.txt","hello world")

        //读取文本文件 hello.txt内容
        val str = folder?.readFile("hello.txt")
        
        //将指定路径 "sdcard/gg.md" 文件写入到当前test文件夹下 相当于拷贝
        val fileInputStream = FileInputStream("sdcard/gg.md")
        folder?.writeFile(fileInputStream,"gg.md")
        
        //将bimap 写入到test 文件夹下
        val bitmap = BitmapFactory.decodeStream(assets.open("美女.jpg"))
        folder?.writeBitmap("美女.jpg",bitmap)
        //读取美女.jpg bitmap
        val bitmap = folder?.getBitmap("美女.jpg")

        //写入xls文件到test
        val list = mutableListOf<Person>()
        folder?.writeXls(name = "美女电话列表.xls",writeTitle = true, sheet = "0", sheetPosition = 0,list,Person::class.java)

        //读取test文件夹下的xls文件
        val list = folder?.readXls("美女电话列表.xls", curClass = Person::class.java)

4.SharedPreferences 使用

定义 Key 单例静态类,方便统一管理key

c 复制代码
object SpKey {

    @SpString(defaultValue = "0", description = "主页设备1")
    const val HOME_DEVICE_1 = "homeDevice1"

    @SpString(defaultValue = "0", description = "主页设备2")
    const val HOME_DEVICE_2 = "homeDevice2"

    @SpString(defaultValue = "0", description = "主页设备3")
    const val HOME_DEVICE_3 = "homeDevice3"

    @SpString(defaultValue = "0", description = "主页设备4")
    const val HOME_DEVICE_4 = "homeDevice4"
}    

初始化创建

c 复制代码
        //推荐使用mmkv 传入SharedPreferences 因为mmkv 实现了 SharedPreferences 接口
        SpFactory.create(MMKV.defaultMMKV(), defaultT = SpKey::class)
        //使用原生SharedPreferences
        SpFactory.create(applicationContext,defaultT = SpKey::class)
        val sp = SpFactory.get()
        sp?.setString(SpKey.HOME_DEVICE_1,"123")
        val str = sp?.getString(SpKey.HOME_DEVICE_1)
        // int float long 都是一样操作,这里不写示例

总结

总体使用个人还是觉得简单高效,方便把,具体使用和改进,欢迎各位老哥大佬多提提意见。

相关推荐
doupoa2 小时前
内存指针是什么?为什么指针还要有偏移量?
android·c++
非凡ghost3 小时前
PowerDirector安卓版(威力导演安卓版)
android·windows·学习·软件需求
独行soc3 小时前
2026年渗透测试面试题总结-19(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
爱装代码的小瓶子4 小时前
【C++与Linux基础】进程间通讯方式:匿名管道
android·c++·后端
兴趣使然HX5 小时前
Android绘帧流程解析
android
JMchen1236 小时前
Android UDP编程:实现高效实时通信的全面指南
android·经验分享·网络协议·udp·kotlin
黄林晴6 小时前
Android 17 再曝猛料:通知栏和快捷设置终于分家了,这操作等了十年
android
有位神秘人7 小时前
Android获取设备中本地音频
android·音视频
JMchen1237 小时前
Android网络安全实战:从HTTPS到双向认证
android·经验分享·网络协议·安全·web安全·https·kotlin
CS创新实验室7 小时前
Pandas 3 的新功能
android·ide·pandas