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)添加权限
<!-- 在SDCard中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 往SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
(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 没学好 ,记了好多遍 ,用了好多次 都没记住 ,望大神指点指点!!!
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-09 11:01:17