package com.linju.android_property.utils;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashSet;
import com.linju.android_property.application.AppApplication;
import android.graphics.Bitmap;
import android.os.Environment;
public class FileUtils {
private static final int BUFFER = 8192;
// 读取文件
public static String readTextFile(File file) throws IOException {
String text = null;
InputStream is = null;
try {
is = new FileInputStream(file);
text = readTextInputStream(is);
;
} finally {
if (is != null) {
is.close();
}
}
return text;
}
// 从流中读取文件
public static String readTextInputStream(InputStream is) throws IOException {
StringBuffer strbuffer = new StringBuffer();
String line;
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(is));
while ((line = reader.readLine()) != null) {
strbuffer.append(line).append("\r\n");
}
} finally {
if (reader != null) {
reader.close();
}
}
return strbuffer.toString();
}
// 将文本内容写入文件
public static void writeTextFile(File file, String str) throws IOException {
DataOutputStream out = null;
try {
out = new DataOutputStream(new FileOutputStream(file));
out.write(str.getBytes());
} finally {
if (out != null) {
out.close();
}
}
}
// 复制文件
public static void copyFile(File sourceFile, File targetFile)
throws IOException {
BufferedInputStream inBuff = null;
BufferedOutputStream outBuff = null;
try {
inBuff = new BufferedInputStream(new FileInputStream(sourceFile));
outBuff = new BufferedOutputStream(new FileOutputStream(targetFile));
byte[] buffer = new byte[BUFFER];
int length;
while ((length = inBuff.read(buffer)) != -1) {
outBuff.write(buffer, 0, length);
}
outBuff.flush();
} finally {
if (inBuff != null) {
inBuff.close();
}
if (outBuff != null) {
outBuff.close();
}
}
}
/**
* 删除单个文件
*
* @param filePath
* 被删除文件的文件名
* @return 文件删除成功返回true,否则返回false
*/
public static boolean deleteFile(String filePath) {
File file = new File(filePath);
if (file.isFile() && file.exists()) {
return file.delete();
}
return false;
}
/**
* 删除文件夹以及目录下的文件
*
* @param filePath
* 被删除目录的文件路径
* @return 目录删除成功返回true,否则返回false
*/
public static boolean deleteDirectory(String filePath) {
boolean flag = false;
// 如果filePath不以文件分隔符结尾,自动添加文件分隔符
if (!filePath.endsWith(File.separator)) {
filePath = filePath + File.separator;
}
File dirFile = new File(filePath);
if (!dirFile.exists() || !dirFile.isDirectory()) {
return false;
}
flag = true;
File[] files = dirFile.listFiles();
// 遍历删除文件夹下的所有文件(包括子目录)
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
// 删除子文件
flag = deleteFile(files[i].getAbsolutePath());
if (!flag)
break;
} else {
// 删除子目录
flag = deleteDirectory(files[i].getAbsolutePath());
if (!flag)
break;
}
}
if (!flag)
return false;
// 删除当前空目录
return dirFile.delete();
}
/**
* 根据路径删除指定的目录或文件,无论存在与否
*
* @param filePath
* 要删除的目录或文件
* @return 删除成功返回 true,否则返回 false。
*/
public static boolean DeleteFolder(String filePath) {
File file = new File(filePath);
if (!file.exists()) {
return false;
} else {
if (file.isFile()) {
// 为文件时调用删除文件方法
return deleteFile(filePath);
} else {
// 为目录时调用删除目录方法
return deleteDirectory(filePath);
}
}
}
//图片处理
public static void deleteDir() {
File dir = new File(AppApplication.mSdcardImageCamera +File.separator);
if (dir == null || !dir.exists() || !dir.isDirectory())
return;
for (File file : dir.listFiles()) {
if (file.isFile())
file.delete(); // 删除所有文件
else if (file.isDirectory())
deleteDir(); // 递规的方式删除文件夹
}
// dir.delete();// 删除目录本身
}
public static boolean isFileExist(String fileName) {
File file = new File(AppApplication.mSdcardImageCamera +File.separator+ fileName);
file.isFile();
return file.exists();
}
public static File createSDDir(String dirName) throws IOException {
File dir = new File(AppApplication.mSdcardImageCamera+File.separator + dirName);
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
System.out.println("createSDDir:" + dir.getAbsolutePath());
System.out.println("createSDDir:" + dir.mkdir());
}
return dir;
}
public static void saveBitmap(Bitmap bm, String picName) {
//Log.e("", "保存图片");
try {
if (!isFileExist("")) {
File tempf = createSDDir("");
}
File f = new File(AppApplication.mSdcardImageCamera+File.separator, picName + ".JPEG");
if (f.exists()) {
f.delete();
}
FileOutputStream out = new FileOutputStream(f);
bm.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
//Log.e("", "已经保存");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void delFile(String fileName){
File file = new File(AppApplication.mSdcardImageCamera+File.separator + fileName);
if(file.isFile()){
file.delete();
}
file.exists();
}
}