1.简介:保存私有数据在设备上,而且是非持久化的。
我们可以保存一个文件保存到设备的内部存储当中,
默认是私有的,其他应用是永远访问不到的,优点是当卸载时,所有文件将全部被删除掉。
注意:基于LINIX系统,没有盘符的概念
2.file文件
创建一个私有文件
①调用 openFileOutput(文件名, 操作文件的模式)
文件模式:PRIVATE_MODE_WORLD_私有模式,
APPEND_ MODE_WORLD追加模式
MODE_WORLD_READABLE 可读
MODE_WORLD_WRITEABLE 可写
write() 写
close()关闭
实例:
boolean saveContentToFile( String fileName , int mode , byte[] data)
{ boolean flg =flase;
FileOutputStream outputStraem =null;
outputStream=context.openFileOutput( fileName, mode);
outputStream . write( data , 0 data.length() );
}finally{
if{outputStream!=null){
outputStream.close();
}}
Stream readContentFromFile( String fileName ){
FileInputStream fis=null;
ByteArrayOutputStream baos =new ByteArrayOutputStream();
fis=context . openFileputStream( fileName );
int len = 0;
byte[] data = new byte[1024];
while( ( len = fis . read (data ))!= -1 ){
baos. write ( data , 0 , len ) ;
}return new String( baos.toByteArray() );
}}
缓存文件
如果我们缓存一些非持久化数据,可以获取目录 getCacheDir () 打开一个文件,
此文件就是数据存储的目录,我们的应用会把文件保存到缓存文件当中。
当设备存储空间比较低的时候,android会帮我们删除缓存文件,删除的数据无法干涉。
缓存文件会用到以下几个方法
getFilesDir();
//返回一个路径,让我们创建openFileOutputStream( String , int) 去存储;
//data/data/包名/files
getDir();
deleteFile();
fileList();
实例:
boolean saveCacheTxtFile(fineName,byte [] data){
boolean flag =false;
FileOutputStream fos =null;
File file = context.getFileDir();
File folder = new File(file . getAbsolutePath () + "/txt");
if( folder . exsits() ){
folder.mkdirs() ; // 创建目录
}
fos = new FileOutputStream ( folder . getAbsolutePath() +"/"+fileName) ;
fos . writer ( data , 0 , data.lenght );
}finally{
if(outputStream!=null){
fos.close}
}
void listCacheFile(){
File file = context . getFileDir();
File root = new File( file . getAbsolutePath()+"/txt");
file[] listFiles = root.listFile();
for(File file2:listFiles)
syso file2.getAbsolutePath()
}}