Android-数据存储(文件存储)

1.回顾

   前两篇已经学习了Android文件存储的 SharedPreference 和 SQLite 的实现

2.重点

  (1)文件存储 介绍

  (2)一个列子

3.文件存储

   (1)  Activity提供了openFileOutput()方法可以用于把数据输出到文件中;

 (2)文件可用来存放大量数据,如文本、图片、音频等。

 (3)存储默认位置: /data/data/<包名>/files/***.***

 (4)Activity还提供了getCacheDir()和getFilesDir()方法

      1)getCacheDir()方法用于获取/data/data//cache目录 

      2)getFilesDir()方法用于获取/data/data//files目录。


4.存储示例:

//写入数据
	private void writeFiles(String con) throws IOException{
		FileOutputStream fos;
		try {
			fos = openFileOutput("a.txt",MODE_PRIVATE);
			fos.write(con.getBytes());
			fos.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
 Java基础学的不好  ;

5.读取示例

 

//读取数据
	private String readFiles() throws IOException{
		
		try {
			FileInputStream fis=openFileInput("a.txt");
			ByteArrayOutputStream baos=new ByteArrayOutputStream();
			byte[] buffer=new byte[1024];
			
			int len=0;
			while((len=fis.read(buffer))!=-1){
				baos.write(buffer,0,len);
			}
			fis.close();
			baos.close();
			return baos.toString();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		return DBNAME;
		
		
	}
	


6.存储在SDCard 

 (1)添加权限

     
    
    
     

(2)判断SDCard 的状态和目录

   1)​Environment.getExternalStorageState()方法用于获取SDCard的状态,

       如果手机装有SDCard,并且可以进行读写,那么方法返回的状态等于Environment.MEDIA_MOUNTED。  

   2)Environment.getExternalStorageDirectory()方法用于获取SDCard的目录,
   3)获取SDCard目录的方法还可以

File sdCardDir = new File("/sdcard"); //获取SDCard目录
 
File saveFile = new File(sdCardDir, "abc.txt");

 (3)实现存储到SDCard 上

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ 
File sdCardDir = Environment.getExternalStorageDirectory();//获取SDCard目录         
 
File saveFile = new File(sdCardDir, “a.txt”);
        FileOutputStream outStream = new FileOutputStream(saveFile);
        outStream.write("test".getBytes());
        outStream.close();
 
} 

  或者是(因为取得SDCard目录的方法不一样) :

File saveFile = new File("/sdcard/a.txt");
 
FileOutputStream outStream = new FileOutputStream(saveFile);
 
outStream.write("test".getBytes());
 
outStream.close()

7.总结

  主要使用  OpenFileOutPut 类进行 文件的存储 ;比较重要的 是 存储在SDCard 上;

 java的 IO 没学好 ,记了好多遍 ,用了好多次 都没记住 ,望大神指点指点!!!

 

你可能感兴趣的:(android,高级)