存取手机中的文件数据。

写入和读取的操作格式均为UTF-8。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

	private String filename = "test";
	private TextView show;
	private EditText et;
	File sdcard = Environment.getExternalStorageDirectory();
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		et = (EditText) findViewById(R.id.et);
		show = (TextView) findViewById(R.id.show);

		findViewById(R.id.writeBtn).setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				try {
					FileOutputStream fos = openFileOutput(filename, Context.MODE_PRIVATE);
					OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8");
					osw.write(et.getText().toString());
					osw.flush();
					fos.flush();
					osw.close();
					fos.close();
					Toast.makeText(getApplicationContext(), "写入完成", Toast.LENGTH_SHORT).show();
				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (UnsupportedEncodingException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

			}
		});

		findViewById(R.id.readBtn).setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				try {
					FileInputStream fis = openFileInput(filename);
					InputStreamReader isr = new InputStreamReader(fis,"UTF-8");
					char input[] = new char[fis.available()];
					isr.read(input);
					isr.close();
					fis.close();
					String readed = new String(input);
					show.setText(readed);
				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (UnsupportedEncodingException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

			}
		});

		findViewById(R.id.writeBtn1).setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				//首先要获得当前sd卡的工作目录
				File myfile = new File(sdcard,"This is my file.txt");
				if(!sdcard.exists()){
					Toast.makeText(getApplicationContext(), "there is no sdcard", Toast.LENGTH_SHORT).show();
					return;
				}
				try {
					myfile.createNewFile();
					FileOutputStream fos = new FileOutputStream(myfile);
					OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8");
					osw.write(et.getText().toString());
					osw.flush();
					osw.close();
					fos.close();
					Toast.makeText(getApplicationContext(), "文件已创建完成", Toast.LENGTH_SHORT).show();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

			}
		});
		findViewById(R.id.readBtn1).setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				File myfile = new File(sdcard,"This is my file.txt");
				if(myfile.exists()){
					try {
						FileInputStream fis = new FileInputStream(myfile);
						InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
						char[] input = new char[fis.available()];
						isr.read(input);
						isr.close();
						fis.close();
						String inString = new String(input);
						show.setText(inString);
					} catch (UnsupportedEncodingException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (FileNotFoundException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
		});
	}

}

布局文件:

放入1个EditText,4个button,1个textview

<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"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.rust.readfiletest.MainActivity" >

    <EditText
        android:id="@+id/et"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"

        android:hint="enter" />

    <Button
        android:id="@+id/writeBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/et"
        android:text="save" />

    <Button
        android:id="@+id/readBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/et"
        android:layout_toRightOf="@id/writeBtn"
        android:text="read" />

    <Button
        android:id="@+id/writeBtn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/et"
        android:layout_toRightOf="@id/readBtn"
        android:text="write e" />

    <Button
        android:id="@+id/readBtn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/et"
        android:layout_toRightOf="@id/writeBtn1"
        android:text="read e" />

    <TextView
        android:id="@+id/show"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/writeBtn"
        />

</RelativeLayout>

Android - 读取文件存储的数据的更多相关文章

  1. Android使用文件存储数据

    Android上最基本的存储数据的方式即为使用文件存储数据,使用基本的Java的FileOutStream,BufferedWriter,FileInputStream和BufferedReader即 ...

  2. android之文件存储和读取

    一.权限问题 手机中存储空间分为ROM和SDcard,ROM中放着操作系统以及我们安装的APP,而sdcard中一般放置着我们APP产生的数据.当然,Android也为每个APP在ROM中创建一个数据 ...

  3. Android学习——文件存储

    在Andriod开发中,文件存储和Java的文件存储类似.但需要注意的是,为了防止产生碎片垃圾,在创建文件时,要尽量使用系统给出的函数进行创建,这样当APP被卸载后,系统可以将这些文件统一删除掉.获取 ...

  4. Android File文件存储功能

    1.介绍 2.使用方法 3.文件存储位置 4.java后台代码 package com.lucky.test47file; import android.support.v7.app.AppCompa ...

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

    Android开发中会用到文件存储,今天来学习下. 先改下布局界面: <?xml version="1.0" encoding="utf-8"?> ...

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

    android提供对可移除的外部存储进行文件存储.在对外部sdcard进行调用的时候首先要调用Environment.getExternalStorageState()检查sdcard的可用状态.通过 ...

  7. C语言 读取文件中特定数据

    //读取文件数据 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> struct jia ...

  8. HDFS读文件过程分析:读取文件的Block数据

    转自http://shiyanjun.cn/archives/962.html 我们可以从java.io.InputStream类中看到,抽象出一个read方法,用来读取已经打开的InputStrea ...

  9. C语言:字符串读取流读取文件中的数据

    #include<stdio.h> int main() { //定义文件指针 FILE *f = NULL; //打开文件 f = fopen("1.txt",&qu ...

随机推荐

  1. iOS开发之资讯类App常用分类控件的封装与实现(CollectionView+Swift3.0+)

    今天博客中,我们就来实现一下一些常用资讯类App中常用的分类选择的控件的封装.本篇博客中没有使用到什么新的技术点,如果非得说用到了什么新的技术点的话,那么勉强的说,用到了一些iOS9以后UIColle ...

  2. 关于Python中yield的一些个人见解

    # 样例代码def yield_test(n): for i in range(n): yield call(i) print("i=",i) #做一些其它的事情 print(&q ...

  3. javascript 生成 uuid

    全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) . GUID是一种由算法生成的二进制长度 ...

  4. Webstorm 激活破解

    2017-06-15更新 之前都是使用2017.2.27的方法,版本是2017.1.1,还没提示过期,但是根据评论说这个链接已经失效了,评论也给出了个新地址:http://idea.iteblog.c ...

  5. iptables 基本用法

    iptables 1.iptables 表 (1)介绍常用表 filtert(过滤器) 链 ↓ INPUT chain:控制进入主机的数据包 OUTPUT chain:控制向外发出的数据包 FORWA ...

  6. 基于Spring的最简单的定时任务实现与配置(一)

    朋友的项目中有点问题.他那边是Spring架构的,有一个比较简单的需要定时的任务执行.在了解了他的需求之后,于是提出了比较简单的Spring+quartz的实现方式. 注意本文只是讨论,在已搭建完毕的 ...

  7. js移动端/H5同时选择多张图片上传并使用canvas压缩图片

    最近在做一个H5的项目,里边涉及到拍照上传图片的功能以及识别图片的功能,这里对识别图片的功能不做赘述,不属本文范畴.我在做完并上线项目后,同事跟我提了一个要求是可不可以同时选择多张图片上传,我做的时候 ...

  8. React Native如何添加自定义图标

    iOS 1.通过xcode将'xxx.ttf'文件引入项目,如图: 2.在node_modules/react-native-vector-icons下新建Icomoon.js文件,复制一份Icomo ...

  9. forfiles命令批处理删除过期文件

    命令格式: forfiles.exe /p "D:\备份" /s /m *.zip /d -7 /c "cmd /c del @path" /p:指定目录 /s ...

  10. webpack 实现的多入口项目脚手架

    简介 基于 webpack2 实现的多入口项目脚手架,主要使用 extract-text-webpack-plugin 实现 js .css 公共代码提取,html-webpack-plugin 实现 ...