存取手机中的文件数据。
写入和读取的操作格式均为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 - 读取文件存储的数据的更多相关文章
-
Android使用文件存储数据
Android上最基本的存储数据的方式即为使用文件存储数据,使用基本的Java的FileOutStream,BufferedWriter,FileInputStream和BufferedReader即 ...
-
android之文件存储和读取
一.权限问题 手机中存储空间分为ROM和SDcard,ROM中放着操作系统以及我们安装的APP,而sdcard中一般放置着我们APP产生的数据.当然,Android也为每个APP在ROM中创建一个数据 ...
-
Android学习——文件存储
在Andriod开发中,文件存储和Java的文件存储类似.但需要注意的是,为了防止产生碎片垃圾,在创建文件时,要尽量使用系统给出的函数进行创建,这样当APP被卸载后,系统可以将这些文件统一删除掉.获取 ...
-
Android File文件存储功能
1.介绍 2.使用方法 3.文件存储位置 4.java后台代码 package com.lucky.test47file; import android.support.v7.app.AppCompa ...
-
19.Android之文件存储方法学习
Android开发中会用到文件存储,今天来学习下. 先改下布局界面: <?xml version="1.0" encoding="utf-8"?> ...
-
android 开发-文件存储之读写sdcard
android提供对可移除的外部存储进行文件存储.在对外部sdcard进行调用的时候首先要调用Environment.getExternalStorageState()检查sdcard的可用状态.通过 ...
-
C语言 读取文件中特定数据
//读取文件数据 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> struct jia ...
-
HDFS读文件过程分析:读取文件的Block数据
转自http://shiyanjun.cn/archives/962.html 我们可以从java.io.InputStream类中看到,抽象出一个read方法,用来读取已经打开的InputStrea ...
-
C语言:字符串读取流读取文件中的数据
#include<stdio.h> int main() { //定义文件指针 FILE *f = NULL; //打开文件 f = fopen("1.txt",&qu ...
随机推荐
-
iOS之02-第一个OC的类
OC是一门面向对象的语言,因此它也有类.对象.静态\动态方法.成员变量的概念.这讲就来创建第一个OC的类. 第一个类的源码: /* 人 类名:Person 属性(成员变量\实例变量):体重.年龄 行为 ...
-
C#获取百度新歌TOP50
先上软件效果图 代码如下1.根据Url地址得到网页的html源码 public static string GetWebContent(string Url) { string strResult = ...
-
让你的Xcode8 支持 iOS7
Xcode8 发布,更新后,发现支持从iOS8开始,可是公司要求从iOS7开始,,,这和苹果相悖. 不过没关系. 跳转 www.cnblogs.com/starainDou/p/5325643.htm ...
-
C#程序设计基础——字符串
C#字符串使用string关键字声明,且由一个或多个字符构成的一组字符. 串联字符串 串联字符串是将一个字符串追加到另一个字符串末尾的过程.使用“+”或“+=”运算符串链字符符文本或字符串常量.串联字 ...
-
Python的XMLRPC机制:实现跨进程间、client/server端通信
SimpleXMLRPCServer模块式python语言的一个基于 xml 格式的进程间通信的基础框架. SimpleXMLRPCServer是一个单线程的服务器,这意味着,如果几个客户端同时发出多 ...
-
Ubuntu Docker 简单安装 GitLab
相关博文: Ubuntu 简单安装 Docker Ubuntu 简单安装和配置 GitLab 服务器版本 Ubuntu 16.04 LTS. 1. 安装和配置 安装命令: sudo docker ru ...
-
【BZOJ2127】happiness
Time Limit: 1000 ms Memory Limit: 256 MB Description 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为 ...
-
【noip模拟】局部最小值
TimeLimit: 1000ms MemoryLimit: 256MB Description 有一个n行m列的整数矩阵,其中1到n×m之间的每个整数恰好出现一次.如果一 ...
-
jmeter下载和配置
一.下载 1.进入官网:http://jmeter.apache.org/ 3.环境变量相关配置 电脑桌面---->“计算机”图标---->鼠标右键选择“属性”---->点击高级系统 ...
-
tesseract-ocr安装问题
今天安装tesseract-ocr的时候,载了坑,记录一下. 1. 安装时语言库的选择,我把 aditional language data 这一项全选中了,装的时候那叫一个慢啊,差不多3个小时装好的 ...