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

总结

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

相关推荐
sakoba14 小时前
MySQL的json处理相关方法
android·学习·mysql·json
神仙别闹14 小时前
Android 端 2D 横屏动作冒险类闯关游戏
android·游戏
坏小虎14 小时前
Android App Startup 库使用说明文档,初始化不再用Application了...
android
lichong95121 小时前
Android studio 修改包名
android·java·前端·ide·android studio·大前端·大前端++
爱学习的大牛1231 天前
MVVM 架构 android
android·mvvm
alexhilton1 天前
理解retain{}的内部机制:Jetpack Compose中基于作用域的状态保存
android·kotlin·android jetpack
꒰ঌ 安卓开发໒꒱1 天前
Mysql 坏表修复
android·mysql·adb
_李小白1 天前
【Android Gradle学习笔记】第八天:NDK的使用
android·笔记·学习
袁震1 天前
Android-Compose 列表组件详解
android·recyclerview·compose
2501_916007471 天前
提升 iOS 26 系统流畅度的实战指南,多工具组合监控
android·macos·ios·小程序·uni-app·cocoa·iphone