Android文件存储详细完整示例

来源:互联网 发布:mysql 新增数据库 编辑:程序博客网 时间:2024/05/18 00:02

MainActivity如下:

package cc.cv;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import android.os.Bundle;import android.app.Activity;import android.content.Context;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;/** * Demo描述: * 文件存储详细示例 *  * 可利用Context的openFileOutput()方法将数据存储到文件中. * 默认的存储路径为/data/data/<packageName>/files/ * 可利用Context的openFileInput()方法将数据从文件中读出 *  * 在Android中常用的存储方式: * SharedPreferences,数据库,SD卡,文件存储. * 对于最后一种方式平时用的不多,现在此写个例子 * 整理和复习一下. *  * 注意事项: * 文件存储是不需要权限的与在SD卡上进行文件存储是不一样的 */public class MainActivity extends Activity {    private Button mSaveButton;    private Button mGetButton;    private Context mContext;    private String mFileName;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);init();}private void init(){mContext=this;mFileName="testData";mSaveButton=(Button) findViewById(R.id.saveButton);mSaveButton.setOnClickListener(new ClickListenerImpl());mGetButton=(Button) findViewById(R.id.getButton);mGetButton.setOnClickListener(new ClickListenerImpl());}private class ClickListenerImpl implements OnClickListener{@Overridepublic void onClick(View view) {switch (view.getId()) {case R.id.saveButton:saveDataToFile(mContext,mFileName);break;case R.id.getButton:getDataFromFile(mContext,mFileName);break;default:break;}}}/** * 向File中保存数据 */private void saveDataToFile(Context context,String fileName){String data="Hello,All";FileOutputStream fileOutputStream=null;OutputStreamWriter outputStreamWriter=null;BufferedWriter bufferedWriter=null;try {fileOutputStream=context.openFileOutput(fileName, Context.MODE_PRIVATE);outputStreamWriter=new OutputStreamWriter(fileOutputStream);bufferedWriter=new BufferedWriter(outputStreamWriter);bufferedWriter.write(data);} catch (Exception e) {e.printStackTrace();}finally{try {if (bufferedWriter!=null) {bufferedWriter.close();}} catch (Exception e) {e.printStackTrace();}}}/** * 从File中读取数据 */private void getDataFromFile(Context context,String fileName){FileInputStream fileInputStream=null;InputStreamReader inputStreamReader=null;BufferedReader bufferedReader=null;StringBuilder stringBuilder=null;String line=null;try {stringBuilder=new StringBuilder();fileInputStream=context.openFileInput(fileName);inputStreamReader=new InputStreamReader(fileInputStream);bufferedReader=new BufferedReader(inputStreamReader);while((line=bufferedReader.readLine())!=null){stringBuilder.append(line);}System.out.println("--->"+stringBuilder.toString());} catch (Exception e) {e.printStackTrace();}finally{try {if (bufferedReader!=null) {bufferedReader.close();}} catch (Exception e) {e.printStackTrace();}}}}

main.xml如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    >    <Button        android:id="@+id/saveButton"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="向File中保存数据"        android:layout_centerHorizontal="true"        android:layout_marginTop="100dp" />             <Button        android:id="@+id/getButton"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="从File中获取数据"        android:layout_centerHorizontal="true"        android:layout_marginTop="260dp" /></RelativeLayout>


0 0