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

总结

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

相关推荐
三少爷的鞋2 分钟前
是时候告别业务层 Manager 了:Android 架构升级到 UseCase + Repository
android
erniu2222224 分钟前
android dex2oat 编译dex文件分析
android
恋猫de小郭11 分钟前
Flutter 3.41.6 版本很重要,你大概率需要更新一下
android·前端·flutter
野生的码农8 小时前
放过自己,降低预期,及时行乐
android·ai编程
huwuhang9 小时前
索尼PS3游戏合集【中文游戏】8.12T 1430个游戏+PS3模拟器
android·游戏·智能手机·游戏机·电视
Grackers11 小时前
Android Perfetto 系列 5:Android App 基于 Choreographer 的渲染流程
android
踩着两条虫11 小时前
AI驱动的Vue3应用开发平台深入探究(十):物料系统之内置组件库
android·前端·vue.js·人工智能·低代码·系统架构·rxjava
sam.li11 小时前
JADX MCP 原理与使用部署
android·逆向·jadx
冬奇Lab11 小时前
Android 15音频子系统(五):AudioPolicyService策略管理深度解析
android·音视频开发·源码阅读
亚历克斯神12 小时前
Flutter for OpenHarmony: Flutter 三方库 mutex 为鸿蒙异步任务提供可靠的临界资源互斥锁(并发安全基石)
android·数据库·安全·flutter·华为·harmonyos