19.Android之文件存储方法学习

Android开发中会用到文件存储,今天来学习下。

先改下布局界面:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6
 7     <TextView
 8         android:id="@+id/filename"
 9         android:layout_width="wrap_content"
10         android:layout_height="20dp"
11         android:textSize="15dp"
12         android:text="文件名称" />
13
14     <EditText
15         android:id="@+id/edit_name"
16         android:layout_width="match_parent"
17         android:layout_height="wrap_content"/>
18
19     <TextView
20         android:id="@+id/filecontent"
21         android:layout_width="wrap_content"
22         android:layout_height="20dp"
23         android:textSize="15dp"
24         android:text="文件内容" />
25
26     <EditText
27         android:id="@+id/edit_content"
28         android:layout_width="match_parent"
29         android:layout_height="wrap_content"/>
30
31     <LinearLayout
32         android:layout_width="match_parent"
33         android:layout_height="match_parent"
34         android:orientation="horizontal" >
35
36         <Button
37             android:id="@+id/btn_save"
38             android:layout_width="wrap_content"
39             android:layout_height="wrap_content"
40             android:text="保存文件" />
41
42         <Button
43             android:id="@+id/btn_read"
44             android:layout_width="wrap_content"
45             android:layout_height="wrap_content"
46             android:text="读取文件" />
47     </LinearLayout>
48
49 </LinearLayout>

再改下MainActivity文件:

 1 package com.example.filesave;
 2
 3 import java.io.ByteArrayOutputStream;
 4 import java.io.FileInputStream;
 5 import java.io.FileOutputStream;
 6
 7 import android.app.Activity;
 8 import android.content.Context;
 9 import android.os.Bundle;
10 import android.view.View;
11 import android.widget.Button;
12 import android.widget.EditText;
13
14 public class MainActivity extends Activity {
15
16     private Context context = this;
17     private Button btnsave = null;
18     private Button btnread = null;
19     private EditText editname = null;
20     private EditText editcontent = null;
21
22     @Override
23     protected void onCreate(Bundle savedInstanceState) {
24         super.onCreate(savedInstanceState);
25         setContentView(R.layout.activity_main);
26
27         btnsave = (Button) findViewById(R.id.btn_save);
28         btnread = (Button) findViewById(R.id.btn_read);
29         editname = (EditText) findViewById(R.id.edit_name);
30         editcontent = (EditText) findViewById(R.id.edit_content);
31
32         btnsave.setOnClickListener(new View.OnClickListener() {
33
34             @Override
35             public void onClick(View v) {
36
37                 String filename = editname.getText().toString();
38                 String filecontent = editcontent.getText().toString();
39                 FileOutputStream out = null;
40                 try {
41                     out = context
42                             .openFileOutput(filename, Context.MODE_PRIVATE);
43                     out.write(filecontent.getBytes("UTF-8"));
44
45                     editname.setText("已经保存名称!");
46                     editcontent.setText("已经保存内容!");
47
48                 } catch (Exception e) {
49                     e.printStackTrace();
50                 } finally {
51                     try {
52                         out.close();
53                     } catch (Exception e) {
54                         e.printStackTrace();
55                     }
56                 }
57             }
58         });
59
60         btnread.setOnClickListener(new View.OnClickListener() {
61
62             @Override
63             public void onClick(View v) {
64                 String filename = editname.getText().toString(); // 获得读取的文件的名称
65                 FileInputStream in = null;
66                 ByteArrayOutputStream bout = null;
67                 byte[] buf = new byte[1024];
68                 bout = new ByteArrayOutputStream();
69                 int length = 0;
70                 try {
71                     in = context.openFileInput(filename); // 获得输入流
72                     while ((length = in.read(buf)) != -1) {
73                         bout.write(buf, 0, length);
74                     }
75                     byte[] content = bout.toByteArray();
76                     editcontent.setText(new String(content, "UTF-8")); // 设置文本框为读取的内容
77                 } catch (Exception e) {
78                     e.printStackTrace();
79                 }
80                 editcontent.invalidate(); // 刷新屏幕
81                 try {
82                     in.close();
83                     bout.close();
84                 } catch (Exception e) {
85                 }
86             }
87
88
89         });
90
91     }
92
93 }

运行效果:

分别输入文件名称和文件内容为“aaaa"、”1234“,如图:

点击保存文件后,界面变为:

然后再修改文件名称为”aaaa",如图:

最后点击读取文件按钮,文件内容显示为”1234”,测试成功。如图:

时间: 2024-10-14 06:27:42

19.Android之文件存储方法学习的相关文章

android学习十(android的文件存储)

在android系统中主要提供了三种方式用于简单的实现数据持久化功能,即文件存储,SharePreference存储以及数据库存储.当然还可以把数据保存到SD卡中. 文件存储是android中最基本的一种数据存储方式,它不对存储的内容进行任何的格式话处理,所有数据都是原封不动地保存到文件当中的,因而比较适合用于存储一些简单的文本数据或二进制数据. Context类中提供了一个openFileOutput()方法,可以用于将数据存储到指定的文件中.这个方法接收两个参数,第一个参数是文件的名,在创建

android 开发-文件存储之读写sdcard

android提供对可移除的外部存储进行文件存储.在对外部sdcard进行调用的时候首先要调用Environment.getExternalStorageState()检查sdcard的可用状态.通过Environment.getExternalStorageDirectory()得到Sdcard的路径.文件写入外部存储需要添加对sdcard的授权 <!-- 写sdcard需要添加写sdcard的授权 --> <uses-permission android:name="and

自学Android笔记——文件存储

1.文件存储简介: 文件存储是android的基本的一种数据存储方式,它与Java中的文件存储类似,都是以I/O流的形式把数据原封不动地存储到文档中,不同的是,android中的文件存储分为内部存储和外部存储. 2.内部存储: 内部存储是指应用程序中的数据以文件方式存储到设备的内部存储空间中.默认情况下,保存在内部存储内的文件是应用程序私有的,如果其他应用程序要操作本应用程序中的文件,需要设置权限.当用户卸载此应用程序时,内部存储的数据会一并清除. 内部存储使用的是Context提供的openF

Android File文件存储功能

1.介绍 2.使用方法 3.文件存储位置 4.java后台代码 package com.lucky.test47file; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Tex

Android使用文件存储数据

Android上最基本的存储数据的方式即为使用文件存储数据,使用基本的Java的FileOutStream,BufferedWriter,FileInputStream和BufferedReader即可. MainActivity.java package org.elvalad.filepersistencetest; import android.app.Activity; import android.content.Context; import android.os.Bundle; i

Android 之文件存储(文末有彩蛋)

1. I/O流分为 字节流 和 字符流. 字节流:InputStream.OutputStream(输入流.输出流) 字符流:Reader.Writer(输入流.输出流) 注:1 字符 = 2 字节 缓冲流:BufferedReader.BufferedWriter(缓冲输入.输出流) 2. 打开数据库:sqlite3: 3. 修改文件权限:chomd   例:chomd+ 777 +文件名 4. Android SQLite 判断数据库中的文件为空 //查询数据 public void que

Android ROM 文件存储数据

使用Activity 类的openFileInput()和openFileOutput方法来操作设备上的文件,创建的文件默认存在“/data/data/<pakage name>/files”目录下,如在包名为[com.company.business]的程序中创建一个[data.txt]文件,存放路径将是[/data/data/com.company.business/file/date.txt].在默认状态下,文件不能在不同的程序之间共享,这两个方法只支持读取该应用目录下的文件,若读取非自

android之文件存储和读取

一.权限问题 手机中存储空间分为ROM和SDcard,ROM中放着操作系统以及我们安装的APP,而sdcard中一般放置着我们APP产生的数据.当然,Android也为每个APP在ROM中创建一个数据存储空间,具体目录是/data/data下.在真机中调试中,该目录对于其他用户是没有开启任何权限,所以在DDMS中我们是打不开该目录的. 解决方案就是我们通过adb登录到我们手机上,然后直接切换到root用户,这时后手机可能会询问是否授权,我们则选择允许.这样我们就成为root用户了.然后我们在更改

Android的文件存储

//文件的写入 String content1 = edt_file.getText().toString(); //用于文件的写操作 FileOutputStream fos=null; //缓冲输入流 BufferedWriter writer = null; try { //如果文件存在,直接打开文件,如果不存在,创建文件 //openFileOutput(String name,int mode)方法:用于向当前应用文件夹下输出文件,并返回FileOutputStream输出流. fos