一个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 都是一样操作,这里不写示例

总结

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

相关推荐
老衲不服3 小时前
android 三方sdk minSdkVersion 兼容问题处理
android
android_xc6 小时前
Android Studio国内仓库配置
android·ide·android studio
alexhilton6 小时前
runBlocking实践:哪里该使用,哪里不该用
android·kotlin·android jetpack
2501_915106327 小时前
iOS 使用记录和能耗监控实战,如何查看电池电量消耗、App 使用时长与性能数据(uni-app 开发调试必备指南)
android·ios·小程序·uni-app·cocoa·iphone·webview
雨白7 小时前
深入解析 Android 多点触摸:从原理到实战
android
曾经的三心草8 小时前
Python2-工具安装使用-anaconda-jupyter-PyCharm-Matplotlib
android·java·服务器
Jerry8 小时前
Compose 设置文字样式
android
飞猿_SIR9 小时前
android定制系统完全解除应用安装限制
android
索迪迈科技10 小时前
影视APP源码 SK影视 安卓+苹果双端APP 反编译详细视频教程+源码
android·影视app源码·sk影视
孔丘闻言10 小时前
python调用mysql
android·python·mysql