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 ...
随机推荐
- SQLite3 C/C++ 开发接口简介(API函数)
from : http://www.sqlite.com.cn/MySqlite/5/251.Html 1.0 总览 SQLite3是SQLite一个全新的版本,它虽然是在SQLite 2.8.13的 ...
- dpkg的用法 (转)
dpkg是一个Debian的一个命令行工具,它可以用来安装.删除.构建和管理Debian的软件包. 下面是它的一些命令解释: 1)安装软件 命令行:dpkg -i <.deb file name ...
- css预处理scss环境配置
css 预处理器 CSS 预处理器用一种专门的编程语言,进行 Web css编码,然后再编译成正常的 CSS 文件,以供项目使用:说简单点就是在某个环境下写css 可以写变量.表达式.嵌套等,在通过该 ...
- LGPL 与GPL的区别
GPL(GNU General Public License) 我们很熟悉的Linux就是采用了GPL.GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样.GPL的出发点是 ...
- leetcode 之Sum系列(七)
第一题是Two Sum 同样是用哈希表来做,需要注意的是在查打gap是要排除本身.比如target为4,有一个值为2,gap同样为2. vector<int> twoSum(vector& ...
- 洛谷 P2077 红绿灯 题解
题目传送门 这道题一秒一秒的扫描一定会超时,所以就用一种O(N)的算法. #include<bits/stdc++.h> using namespace std; ],b[],c[],x= ...
- [笔记] 几个前端bug的解决方案
jQuery UI下被拖动的元素上飘 症状出现在几乎所有浏览器里.使用 1.10.x 的draggable,在滚动栏下移(即非处于页面顶部)的时候拖动draggable的元素,它会向上跳一段距离.解决 ...
- 【严蔚敏】【数据结构题集(C语言版)】1.17 求k阶斐波那契序列的第m项值的函数算法
已知k阶斐波那契序列的定义为 f(0)=0,f(1)=0,...f(k-2)=0,f(k-1)=1; f(n)=f(n-1)+f(n-2)+...+f(n-k),n=k,k+1,... 试编写求k阶斐 ...
- Java实现web在线预览office文档与pdf文档实例
https://yq.aliyun.com/ziliao/1768?spm=5176.8246799.blogcont.24.1PxYoX 摘要: 本文讲的是Java实现web在线预览office文档 ...
- Python并发编程-一个简单的多进程实例
import time from multiprocessing import Process import os def func(args,args2): #传递参数到进程 print(args, ...