Android中的数据存储(二):文件存储 2017-05-25 08:16 35人阅读 评论(0) 收藏
文件存储
这是本人(菜鸟)学习android数据存储时接触的有关文件存储的知识以及本人自己写的简单地demo,为初学者学习和使用文件存储提供一些帮助。。
如果有需要查看SharedPreferences存储的请查看: Android中的数据存储(一):SharedPreferences
openFileInput(String name); FileOutputStream(String name , int mode),这两个方法第一个参数 用于指定文件名,第二个参数指定打开文件的模式:
name , int mode):在应用程序的数据文件夹下获取或者创建name对应的子目录。
getFilesDir():获取该应用程序的数据文件夹的绝对路径。
fileList():返回该应用数据文件夹的全部文件。
会自动创建它。创建的文件保存在/data/data/<package name>/files目录。
NA@Y{98G2T)2JCQYTT.png)
NA@Y{98G2T)2JCQYTT.png)
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
File file = new File(Environment.getExternalStorageDirectory(),"message.txt")
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
package com.example.star.filesavesd.activity; import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText; import com.example.star.filesavesd.R;
import com.example.star.filesavesd.utils.MyToast; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Scanner; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private EditText mEditText;
private Button mButtonSave;
private Button mButtonGet;
private String data; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取控件
initView();
/*设置按钮监听*/
setlistener();
} /**
* 初始化控件
*/
private void initView() {
mEditText = (EditText) findViewById(R.id.editText);
mButtonSave = (Button) findViewById(R.id.main_btn_save);
mButtonGet = (Button) findViewById(R.id.main_btn_get); } /**
* 设置按钮监听
*/
private void setlistener() {
mButtonSave.setOnClickListener(this);
mButtonGet.setOnClickListener(this);
} /**
* 点击事件
*
* @param v
*/
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.main_btn_save:
//保存数据
saveData();
break;
case R.id.main_btn_get:
//获取数据
getData();
break;
default:
break;
}
} /**
* 保存数据到文件中
*/
private void saveData() {
//获取EditText的数据
data = mEditText.getText().toString().trim();
//判断数据是否为空
if (TextUtils.isEmpty(data)){
MyToast.show(getApplicationContext(),"数据为空");
return;
}
//判断是否存在sd卡,具有读取sd卡的权限
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
try {
File file = new File(Environment.getExternalStorageDirectory(),"message.txt");
if (!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
BufferedWriter bw = new BufferedWriter(new FileWriter(file,true));
bw.write(data);
bw.flush();
MyToast.show(getApplicationContext(),"数据保存成功"); } catch (Exception e) {
e.printStackTrace();
} }else{
MyToast.show(getApplicationContext(),"保存失败,SD卡不存在!");
}
} /**
* 获取文件中的数据
*/
private void getData() {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ try {
File file = new File(Environment.getExternalStorageDirectory(),"message.txt");
if (!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
BufferedReader br = new BufferedReader(new FileReader(file));
String readline = "";
StringBuffer sb = new StringBuffer();
while((readline = br.readLine()) != null){
sb.append(readline);
}
mEditText.setText(sb.toString());
br.close();
} catch (Exception e) {
e.printStackTrace();
} }else{
MyToast.show(getApplicationContext(),"读取失败,SD卡不存在!");
}
}
}
Android中的数据存储(二):文件存储 2017-05-25 08:16 35人阅读 评论(0) 收藏的更多相关文章
- Python解析HDF文件 分类: Python 2015-06-25 00:16 743人阅读 评论(0) 收藏
前段时间因为一个业务的需求需要解析一个HDF格式的文件.在这之前也不知道到底什么是HDF文件.百度百科的解释如下: HDF是用于存储和分发科学数据的一种自我描述.多对象文件格式.HDF是由美国国家超级 ...
- NYOJ-214 单调递增子序列(二) AC 分类: NYOJ 2014-01-31 08:06 233人阅读 评论(0) 收藏
#include<stdio.h> #include<string.h> int len, n, i, j; int d[100005], a[100005]; int bin ...
- C语言中返回字符串函数的四种实现方法 2015-05-17 15:00 23人阅读 评论(0) 收藏
C语言中返回字符串函数的四种实现方法 分类: UNIX/LINUX C/C++ 2010-12-29 02:54 11954人阅读 评论(1) 收藏 举报 语言func存储 有四种方式: 1.使用堆空 ...
- hadoop集群中的日志文件 分类: A1_HADOOP 2015-02-28 20:37 680人阅读 评论(0) 收藏
hadoop存在多种日志文件,其中master上的日志文件记录全面信息,包括slave上的jobtracker与datanode也会将错误信息写到master中.而slave中的日志主要记录完成的ta ...
- Android 应用中十大常见 UX 错误 分类: H1_ANDROID 2013-09-21 13:59 404人阅读 评论(0) 收藏
转载自:http://www.apkbus.com/android-5661-1.html 摘要: Android 开发者关系团队每天都会试用无数的 App 或者受到无数的开发者发来的请求评测的 Ap ...
- .net 实现Office文件预览 Word PPT Excel 2015-01-23 08:47 63人阅读 评论(0) 收藏
先打个广告: .Net交流群:252713569 本人QQ :524808775 欢迎技术探讨, 近期公司要求上传的PPT和Word都需要可以在线预览.. 小弟我是从来没有接触过这一块的东西 感觉很棘 ...
- Oracle垃圾数据清理相关问题 分类: Oracle 2015-08-06 11:14 12人阅读 评论(0) 收藏
垃圾数据清理,简单的说,就是删除不需要的那些数据,释放存储空间 最常用的就是delete命令.truncate命令,甚至是删除表空间重建,具体操作都很简单,不是本文的重点 下面,总结几个垃圾数据清理常 ...
- iOS中UITextField 使用全面解析 分类: ios技术 2015-04-10 14:37 153人阅读 评论(0) 收藏
//初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 13 ...
- irms模拟数据生成及数据分析 分类: H_HISTORY 2015-03-06 14:17 212人阅读 评论(0) 收藏
一.数据准备 1.每天生成随机一个文本,每小时向文本中追加2次数据,每次10万条 随机数据生成: 2,32 * * * * bash /mnt/jediael/irms/signalGenerat ...
随机推荐
- Ubuntu 17.10 用 apt 搭建 lamp 环境(精简版)
这篇文章主要用来快速部署以 php 5.6 为主的 lamp 环境,要看详细安装包括虚拟主机配置的请参考这篇:http://www.cnblogs.com/mingc/p/7864030.html 一 ...
- 高通msm mdm 总结
1. svn 获取工程代码命令:svn co svn+ssh://10.20.30.18/svn-repos/msm8916/branches/LA1.1-CS-r113502.2 2. 如何确定那些 ...
- MySQL删除数据几种情况以及是否释放磁盘空间【转】
MySQL删除数据几种情况以及是否释放磁盘空间: 1.drop table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM ; 2.truncate table tabl ...
- 55.Jump Game---dp
题目链接 题目大意:给一个数组,第i个位置的值表示当前可以往前走的最远距离,求从第一个位置能否顺利走到最后一个位置.例子如下: 法一(借鉴):DP,dp[i]表示从上一个位置走到当前位置时,剩余的可以 ...
- angular项目中使用angular-material2
Step 1: Install Angular Material and Angular CDK npm install --save @angular/material @angular/cdk n ...
- 阻止MyEclipse启动项目时自动跳转的debug视图
启动web项目时,习惯使用debug方式启动,但此时会自动跳转到debug视图,很不习惯. 通过修改首选项配置,可以禁止跳转
- day01作业
Java技术按照用途不同分为三大版本,分别是JavaSE.JavaEE和JavaMeJava虚拟机就是一个虚拟的用于执行字节码文件的计算机.它是Java最核心的技术,是Java跨平台的基础.DOS命令 ...
- Android Debug Bridge (adb) device - no permissions
I have a problem connecting HTC Wildfire A3333 in debugging mode with my Fedora Linux 17. Adb says ...
- Reflow(回流)和Repaint(重绘) (转)
原文地址:http://blog.csdn.net/qq_18826911/article/details/68924255 首先我们要明白的是,页面的显示过程分为以下几个阶段: 1.生成DOM树(包 ...
- php正则判断手机号码的方法
导读: php用正则表达式判断手机号码的写法:从文章中匹配出所有的手机号就可以preg_match_all(),如果要检查用户输入的手机号是否正确可这样来检查:preg_match(). 用正则匹配手 ...