android提供了几种文件的存储方式;
1.文件:
2.SharedPreferences存储类似软件的配置参数设置的内容;这是一个类;
3.sqlite数据库 android内嵌的数据库,和微软的excel数据库原理一样,当你创建一个数据库时是以文件的形式存放的;sql语句很类似的;
4.网络
5.content provider
/////////////////////////////////////////
我们使用mvc模式开发一个保存文件内容的程序,我们在j2ee的时候是面向接口编程,可以降低耦合,在android中还是尽量避免使用太多的类,一是效率 二是手机内存不大,内部类是个不错的选择
先写业务层DataManager.java
package cn.lee.Manager;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;public class DataManager {/** * 没有使用成员变量的方法可以定义为静态方法 * 保存数据的业务逻辑 * OutputStream 输出流 * content 文件内容 * @throws Exception  */public static void saveDate (OutputStream outputStream , String contentString) throws Exception{outputStream.write(contentString.getBytes());outputStream.close();}/** * 读取数据的业务逻辑 * @param InputStream * @param contentString * @throws Exception */public static  String readDate (InputStream inputStream ) throws Exception{byte [] byte1 = new byte[1024];/** * 当输入流读到文件的末尾 返回就是-1  */int length = inputStream.read(byte1);ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();if(length!=-1){//读到的内容存在内存中ByteArrayOutputStream 这个类用于将byte流存储在内存中byteArrayOutputStream.write(byte1, 0, length);}String dateString =   byteArrayOutputStream.toString();byteArrayOutputStream.close();inputStream.close();return dateString;}}

再来测试这个业务层DateManagerTest .java
package cn.lee.data;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.OutputStream;import cn.lee.Manager.DataManager;import android.content.Context;import android.test.AndroidTestCase;import android.util.Log;public class DateManagerTest extends AndroidTestCase {private static final String TAG="DateManagerTest";public void testSave ()throws Exception {/** * 内容先定义成固定的内容 *  Activity的父类的父类就是context,context与其他框架中的context相同为我们以供了一些核心操作工具。 *  openFileOutput("fileName", Context.MODE_PRIVATE); *  参数1:文件的名字 不能包含路径分隔符‘/’  *  使用这个方法创建的文件,会保存在手机/date/date/应用文件夹(这里就是cn.lee.data)/files目录下; *  /date/date/cn.lee.data/files/fileName.txt 我们可以在window-show view -other-android-file explore看到 *  这是有android决定的; *  参数2:保存的模式:   *  使用context中的文件输出流它有四种模式: *  文件读写的操作模式: *      Context.MODE_PRIVATE=0:只能是当前的应用才能操作文件 如果创建的文件已经存在 新内容覆盖原内容 *      Context.MODE_APPEND=32768:新内容追加到原内容后 这个模式也是私有的 这个文件只能被创建文件的应用所访问 *      Context.MODE_WORLD_READABLE=1:允许其他应用程序读取本应用创建的文件 *      Context.MODE_WORLD_WRITEABLE=2:允许其他应用程序写入本应用程序创建的文件,会覆盖原数据。        */        FileOutputStream fileOutputStream = this.getContext().openFileOutput("fileName.txt", Context.MODE_PRIVATE);DataManager.saveDate(fileOutputStream, "xxxxxxx");}public void  testRead() throws Exception{FileInputStream fileInputStream = this.getContext().openFileInput("fileName.txt");String contentString = DataManager.readDate(fileInputStream);Log.i(TAG, contentString);}}

设计界面main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="wrap_content"><TextView android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="@string/hello"android:id="@+id/filenameTesxwiew" /><EditText android:layout_width="60px"android:layout_toRightOf="@id/filenameTesxwiew"android:layout_alignTop="@id/filenameTesxwiew" android:layout_height="wrap_content"android:id="@+id/fileName" /></RelativeLayout><TextView android:layout_width="fill_parent"android:layout_height="wrap_content" android:text="@string/contentlable" /><EditTextandroid:layout_width="fill_parent"android:layout_height="wrap_content" android:minLines="5"android:id="@+id/fileContent" /><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/buttontext" /></LinearLayout>

设计activity AboutDateActivity.java
package cn.lee.data;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import cn.lee.Manager.DataManager;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class AboutDateActivity extends Activity {private EditText fileNameEditText;private EditText fileContentEditText;private Button button;private static final String TAGSTRING ="AboutDateActivity";/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);fileNameEditText = (EditText) this.findViewById(R.id.fileName);fileContentEditText = (EditText) this.findViewById(R.id.fileContent);button = (Button) this.findViewById(R.id.button);button.setOnClickListener(new OnClickListener() {public void onClick(View v) {int info = R.string.sus;String fileNameString = fileNameEditText.getText().toString();String fileContentString = fileContentEditText.getText().toString();// TODO Auto-generated method stubFileOutputStream fileOutputStream = null;try {fileOutputStream = AboutDateActivity.this.openFileOutput(fileNameString, Context.MODE_PRIVATE);DataManager.saveDate(fileOutputStream, fileContentString);} catch (Exception e) {// TODO Auto-generated catch blockLog.i(TAGSTRING, e.toString());info = R.string.infor;}finally{try {fileOutputStream.close();} catch (IOException e) {// TODO Auto-generated catch blockLog.i(TAGSTRING, e.toString());info = R.string.infor;}}Toast.makeText(AboutDateActivity.this, info, 1).show();}});}}

你试试。

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. Android常见Exception解决方法
  4. [连载 4/15] Android(安卓)从入门到精通Example 之 Save a File
  5. android studio使用快捷键大全
  6. Android(安卓)- 文件读写操作 总结
  7. Android高手进阶教程(七)之----Android(安卓)中Preferences的使
  8. 手把手搭建 android 开发环境||资源打包下载【更新到android 4.2
  9. android快速上手(二)android开发环境搭建及hello world

随机推荐

  1. android的中的触感反馈
  2. Android(安卓)envsetup.sh剖析
  3. Android开发笔记
  4. android studio信鸽推送10004错误
  5. Android(安卓)APK JNI sample (JAVA JNI)
  6. android 新用户判定
  7. Android(安卓)签名和发布应用程序
  8. Android中使用Gesture加入手势操作
  9. android Bitmap类方法属性 详细说明
  10. android 调用系统自带的设置时间日期对话