Android文件存储详细完整示例

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;
	@Override
	protected 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{
		@Override
		public 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>
时间: 2024-11-02 08:22:23

Android文件存储详细完整示例的相关文章

Android清理设备内存详细完整示例(二)

MainActivity如下: package cc.c; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.List; import android.app.Activity; import android.app.ActivityManager; import android.app.ActivityManager.MemoryInfo;

Android清理设备内存详细完整示例(一)

MainActivity如下: package come.on; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; i

详解Android文件存储_Android

摘要 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理.根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念. 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理.根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念. 相

实例详解Android文件存储数据方式_Android

总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.下面通过本文给大家介绍Android文件存储数据方式. 1.文件存储数据使用了Java中的IO操作来进行文件的保存和读取,只不过Android在Context类中封装好了输入流和输出流的获取方法. 创建的存储文件保存在/data/data/<package name>/files文件夹下. 2.操作. 保存文件内容:通过Context.openFileOutput获取输出流,参数分别为文件名和存储模式. 读取文件内容:通

详解Android文件存储

摘要 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理.根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念. 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理.根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念. 相

实例详解Android文件存储数据方式

总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.下面通过本文给大家介绍Android文件存储数据方式. 1.文件存储数据使用了Java中的IO操作来进行文件的保存和读取,只不过Android在Context类中封装好了输入流和输出流的获取方法. 创建的存储文件保存在/data/data/<package name>/files文件夹下. 2.操作. 保存文件内容:通过Context.openFileOutput获取输出流,参数分别为文件名和存储模式. 读取文件内容:通

android-关于Android文件存储,模拟器正常,安到手机上不行

问题描述 关于Android文件存储,模拟器正常,安到手机上不行 我自己编写应用,为了方便,我在activity中定义了用openFileOutput函数来存储文件的方法save().在程序中save("something")来记录程序运行情况. 在模拟器中,文件能够生成,但是安装到我的手机上,在data/data下得不到相应的files,是怎么回事? 解决方案 路径问题吧 如果是报错了,请把报错提示贴上 解决方案二: 手机没有root是看不程序内部存储的信息的 解决方案三: andr

Android多线程断点下载完整示例详解

MainActivity如下: package cc.activity; import java.io.File; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.Message; import android.view.

Android显示GIF动画完整示例(二)

MainActivity如下: package cc.testgif2; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 利用自定义View控件显示GIF动画 * 详细代码参见GIFView * * 参考资料: * http://blog.csdn.net/dawanganban/article/details/9816083 * Thank you very much */ public class