没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
11页
本文实例讲述了Android开发中的文件操作工具类FileUtil。分享给大家供大家参考,具体如下: package com.ymerp.android.tools; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; impor
资源详情
资源评论
资源推荐
Android开发中的文件操作工具类开发中的文件操作工具类FileUtil完整实例完整实例
本文实例讲述了Android开发中的文件操作工具类FileUtil。分享给大家供大家参考,具体如下:
package com.ymerp.android.tools;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.LineNumberReader;
import java.io.OutputStream;
import java.io.Reader;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.os.Environment;
import android.util.Log;
import android.widget.Toast;
/**
* 文件操作工具
*
* @author chen.lin
*
*/
public class FileUtil {
private static final String TAG = "FileUtil";
/**
* 从sd卡取文件
*
* @param filename
* @return
*/
public String getFileFromSdcard(String filename) {
ByteArrayOutputStream outputStream = null;
FileInputStream fis = null;
try {
outputStream = new ByteArrayOutputStream();
File file = new File(Environment.getExternalStorageDirectory(), filename);
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
fis = new FileInputStream(file);
int len = 0;
byte[] data = new byte[1024];
while ((len = fis.read(data)) != -1) {
outputStream.write(data, 0, len);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
outputStream.close();
fis.close();
} catch (IOException e) {
}
}
return new String(outputStream.toByteArray());
}
/**
* 保存文件到sd
*
* @param filename
* @param content
* @return
*/
public static boolean saveContentToSdcard(String filename, String content) {
boolean flag = false;
FileOutputStream fos = null;
try {
File file = new File(Environment.getExternalStorageDirectory(), filename);
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
fos = new FileOutputStream(file);
fos.write(content.getBytes());
flag = true;
}
} catch (Exception e) {
e.printStackTrace();
flag = false;
} finally {
try {
fos.close();
} catch (IOException e) {
}
}
return flag;
}
/**
* 取得文件大小
*
* @param f
* @return
* @throws Exception
*/
@SuppressWarnings("resource")
public static long getFileSizes(File f) throws Exception {
long size = 0;
if (f.exists()) {
FileInputStream fis = null;
fis = new FileInputStream(f);
size = fis.available();
} else {
f.createNewFile();
}
return size;
}
/**
* 递归取得文件夹大小
*
* @param dir
* @return
* @throws Exception
*/
public static long getFileSize(File dir) throws Exception {
long size = 0;
File flist[] = dir.listFiles();
for (int i = 0; i < flist.length; i++) {
if (flist[i].isDirectory()) {
size = size + getFileSize(flist[i]);
} else {
size = size + flist[i].length();
}
}
return size;
}
/**
* 转换文件大小
*
* @param fileS
* @return
*/
public static String FormetFileSize(long fileS) {
DecimalFormat df = new DecimalFormat("#.00");
String fileSizeString = "";
if (fileS < 1024) {
fileSizeString = df.format((double) fileS) + "B";
} else if (fileS < 1048576) {
fileSizeString = df.format((double) fileS / 1024) + "K";
} else if (fileS < 1073741824) {
fileSizeString = df.format((double) fileS / 1048576) + "M";
} else {
fileSizeString = df.format((double) fileS / 1073741824) + "G";
}
return fileSizeString;
}
/**
* 递归求取目录文件个数
*
* @param f
* @return
*/
public static long getlist(File f) {
long size = 0;
File flist[] = f.listFiles();
size = flist.length;
for (int i = 0; i < flist.length; i++) {
if (flist[i].isDirectory()) {
size = size + getlist(flist[i]);
size--;
}
}
return size;
}
/**
* 在根目录下搜索文件
*
* @param keyword
* @return
*/
public static String searchFile(String keyword) {
String result = "";
File[] files = new File("/").listFiles();
for (File file : files) {
if (file.getName().indexOf(keyword) >= 0) {
result += file.getPath() + "\n";
}
}
if (result.equals("")) {
result = "找不到文件!!";
}
return result;
}
/**
* @detail 搜索sdcard文件
* @param 需要进行文件搜索的目录
* @param 过滤搜索文件类型
* */
public static List<String> search(File file, String[] ext) {
List<String> list = new ArrayList<String>();
if (file != null) {
if (file.isDirectory()) {
File[] listFile = file.listFiles();
if (listFile != null) {
for (int i = 0; i < listFile.length; i++) {
search(listFile[i], ext);
}
}
} else {
String filename = file.getAbsolutePath();
for (int i = 0; i < ext.length; i++) {
if (filename.endsWith(ext[i])) {
list.add(filename);
break;
}
}
}
}
return list;
}
/**
* 查询文件
*
* @param file
* @param keyword
* @return
*/
public static List<File> FindFile(File file, String keyword) {
List<File> list = new ArrayList<File>();
if (file.isDirectory()) {
File[] files = file.listFiles();
if (files != null) {
for (File tempf : files) {
if (tempf.isDirectory()) {
if (tempf.getName().toLowerCase().lastIndexOf(keyword) > -1) {
list.add(tempf);
}
list.addAll(FindFile(tempf, keyword));
} else {
if (tempf.getName().toLowerCase().lastIndexOf(keyword) > -1) {
list.add(tempf);
}
}
剩余10页未读,继续阅读
weixin_38731385
- 粉丝: 2
- 资源: 871
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 信呼OA系统2.1.7版源码
- 3122080306 邹子轩 实验报告二.docx
- 基于STM32 NUCLEO板设计彩色LED照明灯(纯cubeMX开发)(大赛作品,文档完整,可直接运行)
- 发那科工业机器人保养大全
- Sphere.h
- REMD固有时间尺度分解信号分量可视化(Matlab完整源码和数据)
- 嵌入式系统双单片机STC89C52+STC15W104多功能学习板电路图可扩展 适用于单片机初学者和教学
- 基于STM32蓝牙控制小车系统设计(硬件+源代码+论文)大赛作品
- XILINXFPGA源码基于Spartan3火龙刀系列FPGA开发板VGA测试例程
- Java聊天室的设计与实现【尚学堂·百战程序员】
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0