安卓读写SD卡和手机ROM空间里的文件
来源:互联网 发布:vc网络调试助手源代码 编辑:程序博客网 时间:2024/05/17 08:20
安卓上读写文件其实跟JAVA没什么区别,不过在安卓上读写文件还是要注意一些问题的,JAVA的流分为字节流和字符流,字节流读写中文会乱码,所有这里使用字符流读写文件。
名词解释:
sd卡即为你手机插入的扩展内存卡
手机ROM空间即为手机自带的存储空间
手机ROM空间可以理解为电脑的硬盘,而SD卡可以理解为电脑外插的U盘
详细介绍:
要读写文件,首先得开放权限,也就是在AndroidManifest.xml中加入
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
其次我建议建立一个文件辅助类FileHelp.java
代码如下:
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
importandroid.content.Context;
importandroid.os.Environment;
publicclassFileHelp{
privateContext context;// 引用的上下文
privatebooleanhasSD=false;// 是否存在SD卡
privateStringSDPATH;// SD的路径
privateStringFILESPATH;// 当前程序的包路径
publicStringgetFILESPATH(){
returnFILESPATH;
}
publicStringgetSDPATH(){
returnSDPATH;
}
publicbooleanhasSD(){
returnhasSD;
}
publicFileHelp(Context context){
this.context=context;
hasSD=Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED);
SDPATH=Environment.getExternalStorageDirectory().getPath();
FILESPATH=this.context.getFilesDir().getPath();
}
// 在SD卡上创建文件
publicFile createSDFile(StringfileName){
File file=newFile(SDPATH+"//"+fileName);
if(!file.exists()){
try{
file.createNewFile();
}catch(IOExceptione){
// TODO Auto-generated catch block
e.printStackTrace();
}
}
returnfile;
}
// 从SD上删除指定文件
publicbooleandeleteSDFile(StringfileName){
File file=newFile(SDPATH+"//"+fileName);
if(file==null||!file.exists()||file.isDirectory())
returnfalse;
returnfile.delete();
}
// 从SD卡上读取文本文件(使用的是字符流,避免中文乱码)
publicStringreadSDFile(StringfileName){
StringBuffer sb=newStringBuffer();
File file=newFile(SDPATH+"//"+fileName);
if(file.exists()){
try{
BufferedReader br=newBufferedReader(newFileReader(file));
Stringline;
while((line=br.readLine())!=null){
sb.append(line);
}
br.close();
}catch(IOExceptione){
e.printStackTrace();
}
returnsb.toString();
}
return"";
}
// 向SD卡中写入文本文件(使用的是字符流,避免中文乱码)
publicbooleanwriteSDFile(Stringdata,StringfileName){
if(hasSD){
File file=newFile(SDPATH+"//"+fileName);
try{
BufferedWriter buf=newBufferedWriter(newFileWriter(file));
buf.write(data);
buf.flush();
buf.close();
returntrue;
}catch(IOExceptione){
e.printStackTrace();
returnfalse;
}
}
returnfalse;
}
}
在需要用到的地方,实例化这个辅助类,并调用其中的方法完成文件的读写
注:该辅助类为了简便,只提供了SD卡文件创建,和读写删除操作,如果要对手机ROM空间读写的话,只要将方法体里的“SDPATH”换成“FILESPATH”即可
0 0
- 安卓读写SD卡和手机ROM空间里的文件
- 安卓手机ROM和RAM的区别
- [分享] 安卓手机ROM和RAM的区别
- 兼容安卓4.4 SD卡读写文件
- 通过sysfs 读写pci的配置空间和rom空间
- sd卡和手机内存的读写权限
- 安卓SD卡读写、String和byte转换
- 读取手机内存和SD卡的空间大小
- android下SD卡读写相关: 计算手机可用空间
- 安卓开发之获取SD卡的读写权限
- Android -- 读写文件到内部ROM,SD卡,SharedPreferences,文件读写权限
- 读写sd卡的文件
- 安卓6.0读写sd卡问题
- 手机上的RAM, ROM,SD Card
- 安卓获取sd卡剩余空间
- 获取SD卡及手机ROM容量
- Android向SD卡和ROM写文件
- Android中数据保存到ROM文件和sd卡
- 2.jquery插件开发注意事项
- FFMPEG解码多线程
- BOX2D基本元素简介
- Ant基本使用指南
- java.lang.Exception: UnknownHostException sending request em报错
- 安卓读写SD卡和手机ROM空间里的文件
- OpenGL FrameBuffer Object
- 多进程浏览器下ActiveX插件调试技巧
- dispatchTouchEvent用法
- 基于灵巧指针和引用计数的String类
- Java Interface InstanceOf
- Objective-C中一种消息处理方法performSelector: withObject:(转)
- sulogsaver with shell and expect
- c++ 之类的前置声明