import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
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.UnsupportedEncodingException;
/**
* 文件处理工具
*/
public class FileUtils {
/**
* 將文件转为字节
*
* @param filename
* @return
* @throws IOException
*/
public static byte[]
toByteArray(String filename)
throws IOException {
File f =
new File(filename);
if (!f.exists()) {
throw new FileNotFoundException(filename);
}
ByteArrayOutputStream bos =
new ByteArrayOutputStream((
int) f.length());
BufferedInputStream in =
null;
try {
in =
new BufferedInputStream(
new FileInputStream(f));
int buf_size =
1024;
byte[] buffer =
new byte[buf_size];
int len =
0;
while (-
1 != (len = in.read(buffer,
0, buf_size))) {
bos.write(buffer,
0, len);
}
return bos.toByteArray();
}
catch (IOException e) {
e.printStackTrace();
throw e;
}
finally {
try {
in.close();
}
catch (IOException e) {
e.printStackTrace();
}
bos.close();
}
}
/**
* InputStream 转为 byte[]
*
* @param inStream
* @return
* @throws IOException
*/
public static final byte[]
inputStreamToByteArray(InputStream inStream)
throws IOException {
ByteArrayOutputStream swapStream =
new ByteArrayOutputStream();
byte[] buff =
new byte[
100];
int rc =
0;
while ((rc = inStream.read(buff,
0,
100)) >
0) {
swapStream.write(buff,
0, rc);
}
byte[] in2b = swapStream.toByteArray();
return in2b;
}
/**
* 文件类型
*
* @param fileName
* @return
*/
public static String
getFileType(String fileName) {
int start =
0;
start = fileName.lastIndexOf(
".");
if (start <=
0) {
return "";
}
return "." + fileName.substring(start +
1);
}
/**
* @param 文件路径
* @return 文件名
*/
public static String
getFileName(String filepath) {
int start =
0;
start = filepath.lastIndexOf(
"/");
if (start <=
0) {
return "";
}
return filepath.substring(start +
1);
}
public static int getFileSize(File file) {
if (file.exists() && file.isFile()) {
FileInputStream fis =
null;
try {
fis =
new FileInputStream(file);
return fis.available() /
1024;
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
finally {
try {
if (fis !=
null)
fis.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
return 0;
}
/**
* 目的: 将String数据存为文件 。
* @param src
* 字符串
* @param path
* 文件保存路徑
* @return
*/
public static File
saveFileFromStr(String src, String path) {
byte[] b = src.getBytes();
BufferedOutputStream stream =
null;
File file =
null;
try {
file =
new File(path);
FileOutputStream fstream =
new FileOutputStream(file);
stream =
new BufferedOutputStream(fstream);
stream.write(b);
}
catch (Exception e) {
e.printStackTrace();
}
finally {
if (stream !=
null) {
try {
stream.close();
}
catch (IOException e1) {
e1.printStackTrace();
}
}
}
return file;
}
/**
* 目的: 将byte数据存为文件。
* @param b
* byte数据
* @param path
* 文件保存路径
* @return
*/
public static File
saveFileFromBytes(
byte[] b, String path) {
BufferedOutputStream stream =
null;
File file =
null;
try {
file =
new File(path);
FileOutputStream fstream =
new FileOutputStream(file);
stream =
new BufferedOutputStream(fstream);
stream.write(b);
}
catch (Exception e) {
e.printStackTrace();
}
finally {
if (stream !=
null) {
try {
stream.close();
}
catch (IOException e1) {
e1.printStackTrace();
}
}
}
return file;
}
/**
* 目的:byte 转String 编码BASE64 。
* @param bstr
* @return
*/
public static String
encodeBASE64(
byte[] bstr) {
return new sun.misc.BASE64Encoder().encode(bstr);
}
/**
* 目的:string 转 byte 解码BASE64 。
* @param str
* @return
*/
public static byte[]
decodeBASE64(String str) {
byte[] bt =
null;
try {
sun.misc.BASE64Decoder decoder =
new sun.misc.BASE64Decoder();
bt =decoder.decodeBuffer(str);
}
catch (IOException e) {
e.printStackTrace();
}
return bt;
}
/**
* 目的:byte[] 转为String
* @param b
* @return
*/
public static String
byteToString(
byte[] b){
try {
return new String(b,
"UTF-8");
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
return new String(b);
}
}
/**
* 目的:String 转为 byte[] 。
* @param b
* @return
*/
public static byte[]
stringTobyte(String str){
try {
return str.getBytes(
"UTF-8");
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
return str.getBytes();
}
}
}
转载于:https://www.cnblogs.com/bilaisheng/p/10211021.html
相关资源:Java文件处理工具类--FileUtil