Android中数据存储方式一:文件形式

来源:互联网 发布:手机屏幕特效软件 编辑:程序博客网 时间:2024/04/29 18:23

 总结在Android中,一共有数据存储的5种方式。今天做一个笔记的整理。关于以文件形式如何来保存数据。

1.在activity_main.xml设计好布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="fill_parent"    android:layout_height="fill_parent"     android:orientation="vertical">    <TextView         android:id="@+id/textName"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="文件名称"/>        <EditText        android:id="@+id/inputName"        android:layout_width="match_parent"        android:layout_height="wrap_content" />         <TextView         android:id="@+id/fileContextName"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="文件内容"/>        <EditText        android:id="@+id/inputContext"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:maxLines="5" />        <Button         android:id="@+id/fileSaveBtn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="保存"/>    </LinearLayout>


2.在MainActivity.class获取用户输入的文件名和文件信息,保存文件。

public class MainActivity extends Activity { private Button saveBtn;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        saveBtn = (Button)findViewById(R.id.fileSaveBtn);               saveBtn.setOnClickListener(new saveFileListener());            }}

   /**     * 如果这个类不需要被继承,加个final关键字来终结它。     */    private final class saveFileListener implements OnClickListener{@Overridepublic void onClick(View v) {EditText fileNameText = (EditText)findViewById(R.id.inputName);        EditText fileContentText = (EditText)findViewById(R.id.inputContext);        String fileName = fileNameText.getText().toString();String fileContent = fileContentText.getText().toString();FileService fileService  = new FileService(getApplicationContext());try {//保存到手机的内存上fileService.saveFilePrivate(fileName,fileContent);} catch (Throwable e) {Toast.makeText(MainActivity.this, R.string.fail, Toast.LENGTH_LONG).show();e.printStackTrace();}
     }}

3.在业务层,FileSerivice处理如何保存文件内容。

public class FileService {private Context context;//生成构造器public FileService(Context context){this.context = context;}/*** 保存文件信息* @param fileName 文件名* @param fileContent 文件内容* @throws Throwable*/public void saveFilePrivate(String fileName,String fileContent) throws Exception{//采用输出流对象,输出我们所需要的数据。//指出需要导出的位置openFileOutput("只接受文件名称,不接受文件路径",//"用于指定文件的操作模式,行为【追加方式】,【覆盖形式】"//文件有一个访问权限的控制,针对拥有者,针对其他用户的访问权限//私有操作模式:创建出来文件的只能被本应用访问,其他应用无法访问该文件。//             其次私有模式创建出来的文件会覆盖原有的文件内容。// 默认保存在,当前应用包所在的下的files文件夹下。FileOutputStream outputStream = context.openFileOutput("lmfcast.txt",Context.MODE_PRIVATE);//追加方式//FileOutputStream outputStream = context.openFileOutput("lmfcast.txt",Context.MODE_APPEND);write(fileContent, outputStream);}private void write(String fileContent, FileOutputStream outputStream)throws IOException {outputStream.write(fileContent.getBytes());outputStream.close();}}


4.源码运行截图:

           

学习总结:

1.文件保存方式,是采用java的IO流技术。

2.文件的访问模式,分为private和append。

3.文件操作行为分为:private,apend,read,write,read+write。





0 0
原创粉丝点击