android 文件创建、读、写、删除总结

原创 2016年06月01日 18:30:52

接触Android 这么久发现对文件的读写还没有理解好,接下来就把常用的总结如下:

Android是有内置外置sd卡之说,此处的造作都是针对内置sd卡来说。

1、在内置sd卡路径下创建文件夹并在这个文件夹下建个txt文件

public File createSDFile(String fileName) {
File file = new File(Environment.getExternalStorageDirectory().getPath() + "/Test");
// 在file下建fileName文件
File file2 = new File(file, fileName);
try {
if (!file.exists()) {
file.mkdir();// 创建文件夹
String path = file.getPath();
System.out.println("文件夹路径:" + path);
}
if (!file2.exists()) {
file2.createNewFile();// 创建文件
}
} catch (IOException e) {
e.printStackTrace();
}
return file;
}

2、在上面创建的文件写入内容

// sd写入文件

public void writeFileinSD(String message, String fileName) {
try {
FileWriter fileWriter = new FileWriter(Environment.getExternalStorageDirectory().getPath()

+ "/Test" + "//"+ fileName);
File file = new File(Environment.getExternalStorageDirectory().getPath() + "/Test" + "//" + fileName);
fileWriter.write(message);
FileOutputStream fos = new FileOutputStream(file);
DataOutputStream dos = new DataOutputStream(fos);
dos.writeShort(2);
dos.writeUTF("");
fileWriter.flush();
fileWriter.close();

} catch (IOException e) {
e.printStackTrace();
}
}

3、删除文件夹和下面文件

public void deleteFile(File file) {
if (file.isFile()) {
file.delete();
return ;
}
if (file.isDirectory()) {
File[] childFiles = file.listFiles();
//空文件夹直接删除
if (childFiles == null || childFiles.length == 0) {
file.delete();
return;
}
//非空循环删除
for (int i = 0; i < childFiles.length; i++) {
deleteFile(childFiles[i]);
}
file.delete();
}
}

4、删除文件夹下指定文件

public boolean deleteSDFile(String fileName) {
File file = new File(Environment.getExternalStorageDirectory().getPath() + "/Test" + "//" + fileName);
if (file == null || !file.exists() || file.isDirectory()) {
return false;
}
return file.delete();
}


5、私有文件夹下的文件存(/data/data/包名/files)

public void writeFileData(String fileName, String message) {
try {
FileOutputStream fout = mContext.openFileOutput(fileName,
mContext.MODE_PRIVATE);
byte[] bytes = message.getBytes();
fout.write(bytes);
fout.close();
} catch (Exception e) {
e.printStackTrace();
}
}

6、私有文件夹下的文件读(/data/data/包名/files)

public String readFileData(String fileName) {
String res = "";
try {
FileInputStream fin = mContext.openFileInput(fileName);
int length = fin.available();
byte[] buffer = new byte[length];
fin.read(buffer);
res = EncodingUtils.getString(buffer, "UTF-8");
fin.close();
} catch (Exception e) {
e.printStackTrace();
}
return res;
}

7、从assets读取文件
public String readFromAssets(String fileName) {
String result = "";
try {
InputStream is = mContext.getResources().getAssets().open(fileName);
int length = is.available();// 实际可读字节数总大小
byte[] buffer = new byte[length];
is.read(buffer);
result = EncodingUtils.getString(buffer, "UTF-8");
} catch (IOException e) {
e.printStackTrace();
}
return result;
}


8、从resource中的raw文件夹中获取文件并读取数据(资源文件只能读不能写)

public String readFromRaw(int fileInRaw) {
String res = "";
try {
InputStream in = mContext.getResources().openRawResource(fileInRaw);
int length = in.available();
byte[] buffer = new byte[length];
in.read(buffer);
res = EncodingUtils.getString(buffer, "GBK");
// res = new String(buffer,"GBK");
in.close();
} catch (Exception e) {
e.printStackTrace();
}
return res;
}

android中读文件流的关闭

问题描述: 在开发imonitor工具时,遇到一个很严重的问题,在某些机型上运行实时监控时,会在打开监控后几秒钟就FC了,log显示异常为:11-22 10:48:56.467 W/System.e...

Android 中File.delete()无法正常删除文件夹

项目中有个需求,用户通过本地或者手机拍照把多张图片截图并存储在本地文件夹FilePhoto,当用户执行完上传操作后就把FilePhoto文件夹下所有图片删除掉,刚开始代码是这样写的: publi...

Android文件创建删除

  • 2014年08月05日 10:01
  • 1.14MB
  • 下载

文件创建读写和删除

  • 2017年08月25日 15:44
  • 24.17MB
  • 下载

android之旅4: XML方式读写数据与文件创建

SharedPreference的使用场景也是保存用户名和密码// 写数据关键代码 public void login(View v){ //同样先获取uname和password if...

关于android里的文件创建及读写问题

一 在SD卡创建并读写文件   SD卡正常加载后,通过Eclipse的DDMS的File explorer可以看到mnt/sdcard的权限属性为d---rwxr-x,很奇怪的属性,sdcard的o...

关于android里的文件创建及读写问题

一 在SD卡创建并读写文件    SD卡正常加载后,通过Eclipse的DDMS的File explorer可以看到 mnt/sdcard的权限属性为d---rwxr-x,很奇怪的属性,sdca...

Android文件创建、上传 popWindow

  • 2013年12月04日 09:31
  • 898KB
  • 下载

C#文件创建删除小程序

  • 2010年12月22日 06:46
  • 63KB
  • 下载

Android 根据sql文件创建数据库并插入数据

因为在开发客户端的时候,服务器端的有写数据是重复的,不需要再去访问服务器的,然后服务器端提供的是一个sql文件,里面包含了数据库和数据,我们这些开发客户端的不可能一行一行的进行手动入库吧?所以我就想到...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 文件创建、读、写、删除总结
举报原因:
原因补充:

(最多只允许输入30个字)