Titan笔记

  • 首页
  • Java
  • 数据结构
  • C语言
  • Web
  • 杂谈
  • 移动开发
  • 逸笔挥墨
Titan笔记
分享学习,研究与开发的点滴记忆
  1. 首页
  2. 移动开发
  3. Android
  4. 正文

Android数据存储方式之文件存储

2021年7月26日 915点热度 1人点赞 0条评论

文件存储是Android中数据存储的基本方式之一,Android提供了openFileOutput和openFileInput两个方法来提供FileOutStream和FileInputStream,文件将会存储在APP的数据目录中(一般是/data/data/APP包名)。

下面是一个简单的示例

FileStorageActivity的布局文件如下:

<?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"
    android:padding="30dp"
    tools:context=".FileStorageActivity">

    <EditText
        android:id="@+id/fileEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="30dp" />

    <Button
        android:id="@+id/fileWriteButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="写入数据" />

    <Button
        android:id="@+id/fileReadButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="读取数据" />
</LinearLayout>

FileStorageActivity

package cn.titan6.data.storage.demo

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Button
import android.widget.EditText
import java.io.*

class FileStorageActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_file_storage)
        val editText: EditText = findViewById(R.id.fileEditText)
        val writeButton: Button = findViewById(R.id.fileWriteButton)
        val readButton: Button = findViewById(R.id.fileReadButton)
        writeButton.setOnClickListener {
            saveFileData(editText.text.toString())
            Log.i("FileStorageActivity", "Save data finished")
            editText.setText("")
        }
        readButton.setOnClickListener {
            val str = readFileData()
            Log.i("FileStorageActivity", "Read data finished")
            editText.setText(str)
        }
    }

    private fun saveFileData(str: String) {
        val openFileOutput = openFileOutput("data", MODE_PRIVATE)
        val writer = BufferedWriter(OutputStreamWriter(openFileOutput))
        writer.use {
            it.write(str)
        }
    }

    private fun readFileData(): String {
        val content = StringBuilder()
        val input = openFileInput("data")
        val reader = BufferedReader(InputStreamReader(input))
        reader.use {
            reader.forEachLine {
                content.append(it)
            }
        }
        return content.toString()
    }
}

 

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: Android Android数据存储 Android文件存储 Android文件存储方式
最后更新:2021年7月26日

Titan

不为岁月流逝蹉跎,不为潮流的势头去附和

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论
最新 热点 随机
最新 热点 随机
Docker配置IPv6容器网络支持 什么是Elastic Stack,ELK的发展历程 K8s中Pod的基本概念 云原生 - 浅谈容器基础与K8S架构设计 腾讯Serverless体验,使用TypeScript编写并部署云函数 Go-Proxy-Checker,一款基于Go编写的高性能代理服务器验证工具
关于Hive使用的一些实例 如何在Java中处理JSON Spring Cloud 微服务学习笔记 - 开篇 Java核心技术之动态代理 Hadoop安装与环境配置入门 [Java] Java多线程的探索 -获取新闻标题
分类
  • Android
  • C语言
  • Elasticsearch
  • Hadoop
  • Hive
  • Java
  • JavaWeb
  • Kubernetes
  • Linux运维之道
  • Mybatis学习笔记
  • Python
  • SpringCloud
  • Web
  • Web前端
  • Web后端
  • 云原生
  • 并发编程
  • 开发工具
  • 数据库
  • 数据结构
  • 杂谈
  • 移动开发
  • 移动测试
  • 诗词歌赋
  • 软件测试
  • 逸笔挥墨
  • 随摘
标签聚合
Mybatis学习笔记 Apache-Hive Python JavaWeb 二叉树 链式存储 数据结构 Java

COPYRIGHT © 2013-2021 Titan. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备20001822号-1

豫公网安备 41010502004418号