Android学习——文件存储
在Andriod开发中,文件存储和Java的文件存储类似。但需要注意的是,为了防止产生碎片垃圾,在创建文件时,要尽量使用系统给出的函数进行创建,这样当APP被卸载后,系统可以将这些文件统一删除掉。获取文件的方式主要有以下几种。
File file1 =this.getFilesDir();//获取当前程序默认的数据存储目录
Log.d("Jinx",file1.toString());
File file2 =this.getCacheDir(); //默认的缓存文件存储位置
Log.d("Jinx",file2.toString());
File file3=this.getDir("test",MODE_PRIVATE); //在存储目录下创建该文件
Log.d("Jinx",file3.toString());
File file4=this.getExternalFilesDir(Environment.DIRECTORY_MUSIC); //获取外部存储文件
Log.d("Jinx",file4.toString());
File file5=this.getExternalCacheDir(); //获取外部缓存文件
Log.d("Jinx",file5.toString());
相应的Log日志如下,根据日志,可以很清楚看到每种方法获取到的文件的区别:
03-28 03:19:06.948 12690-12690/com.example.jinx.file D/Jinx: /data/user/0/com.example.jinx.file/files
03-28 03:19:06.948 12690-12690/com.example.jinx.file D/Jinx: /data/user/0/com.example.jinx.file/cache
03-28 03:19:06.948 12690-12690/com.example.jinx.file D/Jinx: /data/user/0/com.example.jinx.file/app_test
03-28 03:19:06.963 12690-12690/com.example.jinx.file D/Jinx: /storage/emulated/0/Android/data/com.example.jinx.file/files/Music
03-28 03:19:06.966 12690-12690/com.example.jinx.file D/Jinx: /storage/emulated/0/Android/data/com.example.jinx.file/cache
当然,如果有一些重要的文件,不想在APP被删除时丢失,则可以自定义文件路径,如下所示:
File file=new File("/mmt/sdcard/test");
if(!file.exists())
{
Toast.makeText(MainActivity.this,"good!",Toast.LENGTH_SHORT).show();
try
{
file.createNewFile();
} catch (IOException e)
{
e.printStackTrace();
}
}
else
{
Toast.makeText(MainActivity.this,"good!",Toast.LENGTH_SHORT).show();
}
读写文件操作
Android通过自带的FileInputStream和FileOutputStream来进行文件的读写,具体代码如下:
1.文件写入:
private void WriteText(String text)
{
try
{
FileOutputStream fos=openFileOutput("a.txt",MODE_APPEND); //获取FileOutputStream对象
fos.write(text.getBytes()); //写入字节
fos.close(); //关闭文件流
} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
}
2.文件读取
private String Read()
{
String text=null;
try
{
FileInputStream fis=openFileInput("a.txt"); //获取FileInputStream对象
//ByteArrayOutputStream来存放获取到的数据信息
ByteArrayOutputStream baos=new ByteArrayOutputStream(); byte [] buffer=new byte[1024]; //创建byte数组,分多次获取数据
int len=0;
while ((len=fis.read(buffer))!=-1) //通过FileInputStream的read方法来读取信息
{
baos.write(buffer,0,len); //ByteArrayOutputStream的write方法来写入读到的数据
}
text=baos.toString();
fis.close();
} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
return text;
}
Android学习——文件存储的更多相关文章
- 19.Android之文件存储方法学习
Android开发中会用到文件存储,今天来学习下. 先改下布局界面: <?xml version="1.0" encoding="utf-8"?> ...
- Android使用文件存储数据
Android上最基本的存储数据的方式即为使用文件存储数据,使用基本的Java的FileOutStream,BufferedWriter,FileInputStream和BufferedReader即 ...
- Android File文件存储功能
1.介绍 2.使用方法 3.文件存储位置 4.java后台代码 package com.lucky.test47file; import android.support.v7.app.AppCompa ...
- android 开发-文件存储之读写sdcard
android提供对可移除的外部存储进行文件存储.在对外部sdcard进行调用的时候首先要调用Environment.getExternalStorageState()检查sdcard的可用状态.通过 ...
- Android学习——数据存储之文件存储
将数据存储到文件中并读取数据 1.新建FilePersistenceTest项目,并修改activity_main.xml中的代码,如下:(只加入了EditText,用于输入文本内容,不管输入什么按下 ...
- Android学习笔记--存储方案(SharedPreference、文件IO)
1. SharedPreference SharedPreference可以很容易的保存key-value对,通常用于保存配置信息.保存的步骤 1. 获得SharedPreferences对象 (最后 ...
- android之文件存储和读取
一.权限问题 手机中存储空间分为ROM和SDcard,ROM中放着操作系统以及我们安装的APP,而sdcard中一般放置着我们APP产生的数据.当然,Android也为每个APP在ROM中创建一个数据 ...
- Android - 读取文件存储的数据
存取手机中的文件数据. 写入和读取的操作格式均为UTF-8. import java.io.File; import java.io.FileInputStream; import java.io.F ...
- Android的文件存储
//文件的写入 String content1 = edt_file.getText().toString(); //用于文件的写操作 FileOutputStream fos=null; //缓冲输 ...
随机推荐
- 本地DataGrip连接阿里云MySQL
1.阿里云上开通MySQL端口 2.MySQL上的设置 1⃣️mysql -uroot -p2⃣️create user 'usrabc'@'%' identified by 'usrabc'; 3. ...
- ant.design初探
第一部分: 前言 推荐网站: https://ant.design/docs/spec/introduce-cn ant.design是基于react开发的一个解放ui和前端的工具,它提供了一致的设计 ...
- WPF的窗体设置WindowStyle=none时,如何移动窗体
1. 在WPF中当将主窗体的WindowStyle设置为none时,使用鼠标移动不了窗体 2. 解决方法: 2.1. 在Windows的Load方法中增加一下代码: private void Wind ...
- Shiro与Spring、Springmvc的整合
1.在web.xml中配置Shiro的filter 在web系统中,shiro也通过filter进行拦截.filter拦截后将操作权交给spring中配置的filterChain(过虑链儿) shir ...
- vue-cli 基础搭建
1.安装node 2.npm install webpack -g 3.npm install vue-cli -g 4.然后进入到文件下边 vue init webpack 文件名字 5.进入工程文 ...
- <数据挖掘导论>读书笔记5关联分析的基本概念和算法
关联规则的强度可以用support度和confidence(置信)度来度量 关联规则发现 给定事务的集合T,关联规则发现是指找出支持度大于等于minsup并且置信度大于等于minconf的所有规则, ...
- 使用idea开发工具,nginx服务部署Extjs6,SpringBoot项目到服务器
编译ExtJs文件 1.输入命令 2.开始编译 3.找到编译后的文件 E:\idea_project\BaiSheng_Model\fin-ui\build\production\Admin 4.将文 ...
- awk如何替换一个字符串的第n个字符?
方法一: echo "abcdefg" | awk 'BEGIN{FS=OFS=""}$4="h"' // ""可 ...
- js 递归树结构数据查找父级
1.json树数据查找所有父级--完成 json:树结构数据 var arrData = [{ "label": "中国", "City": ...
- T-SQL语句创建表
USE E_Market --指定当前所操作的数据库 GO CREATE TABLE 表名 ( BID int identity (1,1)NOT NULL, BNAME varch ...