Android开发和java开发有很多相似之处,其实在Java项目和Android项目中,文件存储是相同的,只是部分Android开发的路径被相应地处理过,有需要的朋友来爱站技术频道看看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 = 0) {
result += file.getPath() + "\n";
}
}
if (result.equals("")) {
result = "找不到文件!!";
}
return result;
}
/**
* @detail 搜索sdcard文件
* @param 需要进行文件搜索的目录
* @param 过滤搜索文件类型
* */
public static List search(File file, String[] ext) {
List list = new ArrayList();
if (file != null) {
if (file.isDirectory()) {
File[] listFile = file.listFiles();
if (listFile != null) {
for (int i = 0; i FindFile(File file, String keyword) {
List list = new ArrayList();
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);
}
}
}
}
}
return list;
}
/**
* searchFile 查找文件并加入到ArrayList 当中去
*
* @param context
* @param keyword
* @param filepath
* @return
*/
public static List
关于Android开发中的文件操作工具类FileUtil完整实例爱站技术频道就为大家介绍到这里了,可能还有很多朋友不了解这方面的知识的,所以关注js.aizhan.com推荐的文章一定会让你受益匪浅。