package ml.puredark.hviewer.utils;
import android.content.Context;
import android.util.Log;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* 文件读写工具类
*
* @author bear
*/
public class SimpleFileUtil {
/**
* 如果文件不存在,就创建文件
*
* @param path 文件路径
* @return
*/
public static String createIfNotExist(String path) {
File file = new File(path);
if (!file.getParentFile().exists())
file.getParentFile().mkdirs();
if (!file.exists()) {
try {
file.createNewFile();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
return path;
}
/**
* 如果文件夹不存在,就创建文件夹
*
* @param path 文件路径
* @return
*/
public static String createDirIfNotExist(String path) {
File file = new File(path);
if (!file.exists()) {
boolean success = file.mkdirs();
Log.d("SimpleFileUtil", "success:" + success);
}
return path;
}
/**
* 向文件中写入数据
*
* @param filePath 目标文件全路径
* @param data 要写入的数据
* @return true表示写入成功 false表示写入失败
*/
public static boolean writeBytes(String filePath, byte[] data) {
return writeBytes(filePath, data, false);
}
/**
* 向文件中写入数据
*
* @param filePath 目标文件全路径
* @param data 要写入的数据
* @param append 是否写入文件末尾
* @return true表示写入成功 false表示写入失败
*/
public static boolean writeBytes(String filePath, byte[] data, boolean append) {
try {
FileOutputStream fos = new FileOutputStream(filePath, append);
fos.write(data);
fos.close();
return true;
} catch (Exception e) {
System.out.println(e.getMessage());
}
return false;
}
/**
* 从文件中读取数据
*
* @param file
* @return
*/
public static byte[] readBytes(String file) {
try {
FileInputStream fis = new FileInputStream(file);
int len = fis.available();
byte[] buffer = new byte[len];
fis.read(buffer);
fis.close();
return buffer;
} catch (Exception e) {
System.out.println(e.getMessage());
}
return null;
}
/**
* 向文件中写入字符串String类型的内容
*
* @param file 文件路径
* @param content 文件内容
* @param charset 写入时候所使用的字符集
*/
public static void writeString(String file, String content, String charset) {
try {
byte[] data = content.getBytes(charset);
writeBytes(file, data);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
/**
* 从文件中读取数据,返回类型是字符串String类型
*
* @param file 文件路径
* @param charset 读取文件时使用的字符集,如utf-8、GBK等
* @return
*/
public static String readString(String file, String charset) {
byte[] data = readBytes(file);
String ret = null;
try {
ret = new String(data, charset);
} catch (Exception e) {
System.out.println(e.getMessage());
}
return ret;
}
public static String getFromAssets(Context context, String fileName) throws IOException {
InputStreamReader inputReader = new InputStreamReader(context.getResources().getAssets().open(fileName));
BufferedReader bufReader = new BufferedReader(inputReader);
String line = "";
String Result = "";
while ((line = bufReader.readLine()) != null)
Result += "\n" + line;
return Result;
}
/**
* 获取指定文件大小
*
* @param file
* @return
* @throws Exception
*/
public static long getFileSize(File file) {
long size = 0;
if (file.exists()) {
FileInputStream fis;
try {
fis = new FileInputStream(file);
size = fis.available();
} catch (Exception e) {
e.printStackTrace();
}
}
return size;
}
}