android 内部存储

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()      

 }}


你可能感兴趣的:(内部存储)