美文网首页Kotlin程序员Android开发
56. (android开发)文件读写操作OpenFileOut

56. (android开发)文件读写操作OpenFileOut

作者: 厚土火焱 | 来源:发表于2017-12-31 15:00 被阅读94次

    除了保存key-value数据,在android中也可以直接以文件的形式保存内容。数据格式就可以随意了,都是按照字符串的形式存在文件里的。就以最长见到的 txt 文本文件为例子吧。
    读写文件都需要打开文件,离不开两个方法:OpenFileOutput 和 OpenFileInput
    这两个方法针对的文件,在 android 中的存储位置是 /data/data/<package name>/files
    先写一个界面代码

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="com.cofox.functions.OpenFileOutuutAndOpenFileInput.OpenFileOutputActivity">
    
        <TextView
            android:id="@+id/ttvwData"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView" />
    
        <Button
            android:id="@+id/btnSave"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="保存数据" />
    
        <Button
            android:id="@+id/btnLoad"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="读取数据" />
    </LinearLayout>
    
    
    初始界面

    然后写 kotlin 代码。
    在 onCreate 中增加两个按钮的点击动作

            // 向 data.txt 写入数据
            btnSave.setOnClickListener {
                try {
                    val fileOutput = openFileOutput("data.txt", Activity.MODE_PRIVATE)
                    val str = "赤子之心,犀牛望月,永是勇士。耐心、细心、信心、恒心。"
                    fileOutput.write(str.toByteArray(Charsets.UTF_8))
                    fileOutput.close()
                    Toast.makeText(this, "数据保存成功!", Toast.LENGTH_LONG).show()
                } catch (e: Exception) {
                }
            }
            // 读取 data.txt 中的数据
            btnLoad.setOnClickListener {
                try {
                    val fileInput = openFileInput("data.txt")
                    fileInput.reader().forEachLine { ttvwData.setText(it) }
                    fileInput.close()
                } catch (e: Exception) {
                }
            }
    
    显示结果

    相关文章

      网友评论

        本文标题:56. (android开发)文件读写操作OpenFileOut

        本文链接:https://www.haomeiwen.com/subject/wvxagxtx.html