package com.basic.security.utils;
|
|
import android.content.Context;
|
import android.graphics.Bitmap;
|
import android.graphics.BitmapFactory;
|
|
import com.basic.security.base.BaseApplication;
|
|
import java.io.BufferedInputStream;
|
import java.io.BufferedOutputStream;
|
import java.io.BufferedReader;
|
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.io.RandomAccessFile;
|
|
|
public class FileUtil {
|
|
|
public static boolean copyApkFromAssets(Context context, String fileName, String path) {
|
boolean copyIsFinish = false;
|
try {
|
InputStream is = context.getAssets().open(fileName);
|
File file = new File(path + "/" + fileName);
|
if (file.exists()) {
|
file.delete();
|
}
|
file.createNewFile();
|
FileOutputStream fos = new FileOutputStream(file);
|
byte[] temp = new byte[1024];
|
int i = 0;
|
while ((i = is.read(temp)) > 0) {
|
fos.write(temp, 0, i);
|
}
|
fos.close();
|
is.close();
|
copyIsFinish = true;
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
return copyIsFinish;
|
}
|
|
public static File writeToFile(String fileName, byte[] fileBytes) {
|
try {
|
return writeToFile(fileName, fileBytes, 0, fileBytes.length);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
|
|
public static File writeToFile(String fileName, byte[] fileBytes, int offset, int size) {
|
try {
|
if (fileBytes == null) {
|
fileBytes = new byte[]{};
|
}
|
String dir = BaseApplication.getApplication().activity.getFilesDir().getAbsolutePath();
|
|
File file = new File(dir, fileName);
|
if (file.exists()) {
|
file.delete();
|
}
|
file.createNewFile();
|
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(dir, fileName)));
|
bos.write(fileBytes, offset, size);
|
bos.flush();
|
bos.close();
|
return new File(dir, fileName);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
|
public static File getFile(String shortFileName) {
|
String dir = BaseApplication.getApplication().activity.getFilesDir().getAbsolutePath();
|
return new File(dir, shortFileName);
|
}
|
|
public static File getPhotoFile() {
|
File dir = new File(BaseApplication.getApplication().activity.getFilesDir().getAbsolutePath());
|
File[] photoFiles = dir.listFiles();
|
if (photoFiles != null) {
|
for (File file : photoFiles) {
|
if (file.isDirectory()) {
|
continue;
|
}
|
String name = file.getName();
|
if (name.length() != "c248fe8f-6da5-4ec9-bffa-1a11bcf2fdc7".length()) {
|
continue;
|
}
|
if (file.isFile()) {
|
return file;
|
}
|
}
|
}
|
return null;
|
}
|
|
public static byte[] readFile1(String path) {
|
File file = new File(path);
|
int size = (int) file.length();
|
byte[] bytes = new byte[size];
|
try {
|
BufferedInputStream buf = new BufferedInputStream(new FileInputStream(file));
|
buf.read(bytes, 0, bytes.length);
|
buf.close();
|
} catch (FileNotFoundException e) {
|
e.printStackTrace();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
return bytes;
|
}
|
|
|
public static byte[] readFile(File file) {
|
// Open file
|
RandomAccessFile f = null;
|
try {
|
f = new RandomAccessFile(file, "r");
|
// Get and check length
|
long longlength = f.length();
|
int length = (int) longlength;
|
if (length != longlength)
|
throw new IOException("File size >= 2 GB");
|
// Read file and return data
|
byte[] data = new byte[length];
|
f.readFully(data);
|
return data;
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
try {
|
if (f != null) {
|
f.close();
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
return new byte[]{};
|
}
|
|
|
public static void deleteFile(String fileName) {
|
try {
|
String dir = BaseApplication.getApplication().activity.getFilesDir().getAbsolutePath();
|
|
File file = new File(dir, fileName);
|
if (file.exists()) {
|
file.delete();
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
public static String convertStreamToString(InputStream is) throws Exception {
|
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
|
StringBuilder sb = new StringBuilder();
|
String line = null;
|
while ((line = reader.readLine()) != null) {
|
sb.append(line);
|
}
|
reader.close();
|
return sb.toString();
|
}
|
|
public static String getStringFromFile(String filePath) {
|
try {
|
File fl = new File(filePath);
|
FileInputStream fin = new FileInputStream(fl);
|
String ret = convertStreamToString(fin);
|
fin.close();
|
return ret;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return "";
|
}
|
|
public static Bitmap loadBitmap(String fileName) {
|
String dir = BaseApplication.getApplication().activity.getFilesDir().getAbsolutePath();
|
File file = new File(dir, fileName);
|
if (file.exists()) {
|
BitmapFactory.Options options = new BitmapFactory.Options();
|
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
|
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), options);
|
return bitmap;
|
} else {
|
return null;
|
}
|
}
|
|
}
|