以下内容给大家介绍Android数据存储提供了五种方式:

1、SharedPreferences

2、文件存储

3、SQLite数据库

4、ContentProvider

5、网络存储

  本文主要介绍如何使用文件来存储数据。Android文件操作用到的是Java.IO中的FileOutputStream和FileInputStream类。

一、存储文件

  首先实例化一个FileOutputStream。

FileOutputStream foStream = openFileOutput(fileName, MODE_PRIVATE);
// fileName: 要写入文件的名称
// MODE_PRIVATE: 为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
// MODE_APPEND: 模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
// MODE_WORLD_READABLE: 表示当前文件可以被其他应用读取,不推荐使用
// MODE_WORLD_WRITEABLE: 表示当前文件可以被其他应用写入,不推荐使用

  然后调用foStream.write()即可完成写入。

byte[] buffer = fileContent.getBytes();
foStream.write(buffer);
Toast.makeText(MainActivity.this, "写入成功",Toast.LENGTH_SHORT).show();

  最后进行一些清理工作,刷新写出流和关闭流。

foStream.flush();
foStream.close();

二、读取文件

  同样的,首先实例化一个FileInputStream。

FileInputStream fiStream = openFileInput(fileName)

  然后调用fiStream.read()即可

int len = fiStream.available();
byte[] buffer = new byte[len];
fiStream.read(buffer)

  最后,将文本显示并关闭读文件流

etContent.setText(new String(buffer));
Toast.makeText(MainActivity.this, "读取成功",Toast.LENGTH_SHORT).show();
fiStream.close();

三、完整代码

import android.support.v.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import java.io.FileInputStream; import java.io.FileOutputStream; public class MainActivity extends AppCompatActivity {   private EditText etName;   private EditText etContent;   private Button btnWrite;   private Button btnRead;   private String fileName = "";   private String fileContent = "";   @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);     etName = (EditText)findViewById(R.id.etName);     etContent = (EditText)findViewById(R.id.etContent);     btnWrite = (Button)findViewById(R.id.btnWrite);     btnRead = (Button)findViewById(R.id.btnRead);     btnWrite.setOnClickListener(new View.OnClickListener() {       @Override       public void onClick(View view) {         fileName = etName.getText().toString();         fileContent = etContent.getText().toString();         try {           FileOutputStream foStream = openFileOutput(fileName, MODE_PRIVATE);           byte[] buffer = fileContent.getBytes();           foStream.write(buffer);           Toast.makeText(MainActivity.this, "写入成功",Toast.LENGTH_SHORT).show();           foStream.flush();           foStream.close();         }catch(Exception e){           e.printStackTrace();         }       }     });     btnRead.setOnClickListener(new View.OnClickListener() {       @Override       public void onClick(View view) {         fileName = etName.getText().toString();         try{           FileInputStream fiStream = openFileInput(fileName);           int len = fiStream.available();           byte[] buffer = new byte[len];           fiStream.read(buffer);           etContent.setText(new String(buffer));           Toast.makeText(MainActivity.this, "读取成功",Toast.LENGTH_SHORT).show();           fiStream.close();         }catch(Exception e){           e.printStackTrace();         }       }     });   } }         

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. android 将Bitmap转YUV420sp(实例)
  6. C++与java混合编写和C++与OC混合编写 笔记
  7. Android(安卓)studio插件大全
  8. android BannerView实现自动轮播广告的用法(参考自github)
  9. Android(安卓)签名和发布

随机推荐

  1. android am命令
  2. android shape的用法总结
  3. [Android] 环境配置之基础开发环境(SDK/An
  4. Android联系人3--联系人分组相关
  5. Android(安卓)RecycleView
  6. 透明button 转
  7. Android(安卓)调用系统的拍相程序进行录
  8. Android(安卓)getSuggestedMinimumWidth(
  9. Android截取开机关机事件
  10. 编程回忆之Android回忆(Android(安卓)调用