首页 > 代码库 > Android手机内存,SD卡读写
Android手机内存,SD卡读写
在手机上有两个存储位置
1 手机内部存储
2 SD卡
文件操作模式:
是否允许外部访问?
文件以覆盖/追加方式写?
- 手机内存读写
//保存文件到手机内存public void save(String fileName,String content) throws IOException{ FileOutputStream fos = context.openFileOutput("a.txt", Context.MODE_PRIVATE); fos.write(content.getBytes()); fos.close();}
**Context.MODE_PRIVATE 只允许本应用访问,覆盖方式
getBytes()默认使用UTF-8
// 从手机内存读取文件public String read(String fileName) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 向内存输入字节数据的流 FileInputStream fis = context.openFileInput(fileName); byte[] buffer = new byte[1024]; int len = 0; while ((len = fis.read(buffer)) != -1) { baos.write(buffer, 0, len); } byte[] data =http://www.mamicode.com/ baos.toByteArray(); return data.toString();}
**文件默认保存和读取位置:/data/data/<包>/files
文件操作模式
Context.MODE_PRIVATE:(默认)只能被本应用访问,覆盖原文件
Context.MODE_APPEND:追加
Context.MODE_WORLD_READABLE当前文件可被其他文件读取
Context.MODE_WORLD_WRITEABLE... 可被其他文件写入
- SD卡读写
// 判断SD卡状态,插入可读写if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { service.saveToSDCard(fileName, content);} else { // sdcard不存在时,保存到手机内存 service.save(fileName, content);}//保存文件到SD卡public void saveToSDCard(String fileName, String content) throws IOException{ File file = new File(Environment.getExternalStorageDirectory(),fileName); FileOutputStream fos = new FileOutputStream(file); fos.write(content.getBytes()); fos.close();}
权限:
从sd卡读取数据不需要权限
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
**android 2.2以前 /sdcard 以后 /mnt/sdcard
不要使用绝对路径 :Environment.getExternalStorageDirectory()
Android手机内存,SD卡读写
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。