import java.io.*;
import java.nio.channels.FileChannel;
public class FileUtils_Byte_Stream {
/**
* *byte数组转inputstream
*
* @param bytes
* @return
*/
public static InputStream bytesToInputStream(byte[] bytes) {
InputStream inputStream = new ByteArrayInputStream(bytes);
return inputStream;
}
/**
* *inputstream转byte数组
*
* @param inputStream
* @return
* @throws IOException
*/
public static byte[] inputStreamToBytes(InputStream inputStream) throws IOException {
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int n = 0;
while (-1 != (n = inputStream.read(buffer))) {
output.write(buffer, 0, n);
}
return output.toByteArray();
}
/**
* *inputstream转file
*
* @param inputStream
* @param filePath
* @param fileName
* @throws IOException
*/
public static void inputStreamToFile(InputStream inputStream, String filePath, String fileName) throws IOException {
File dir = new File(filePath);
if (!dir.exists()) {// 判断文件目录是否存在
dir.mkdirs();
}
File file = new File(filePath + "//" + fileName);
FileOutputStream outStream = new FileOutputStream(file);
FileChannel in = ((FileInputStream) inputStream).getChannel();
FileChannel out = outStream.getChannel();
in.transferTo(0, in.size(), out);
}
/**
* 将inputStream转化为file
* @param is
* @param file 要输出的文件目录
*/
public static void inputStream2File(InputStream is, File file) throws IOException {
OutputStream os = null;
try {
os = new FileOutputStream(file);
int len = 0;
byte[] buffer = new byte[8192];
while ((len = is.read(buffer)) != -1) {
os.write(buffer, 0, len);
}
} finally {
os.close();
is.close();
}
}
/**
* *file转inputstream
*
* @param file
* @return
* @throws FileNotFoundException
*/
public static InputStream fileToInputStream(File file) throws FileNotFoundException {
InputStream is = new FileInputStream(file);
return is;
}
/**
* *byte数组转file
*
* @param bytes
* @param filePath
* @param fileName
* @throws IOException
*/
public static void bytesToFile(byte[] bytes, String filePath, String fileName) throws IOException {
BufferedOutputStream bos = null;
FileOutputStream fos = null;
File file = null;
File dir = new File(filePath);
if (!dir.exists()) {// 判断文件目录是否存在
dir.mkdirs();
}
file = new File(filePath + "//" + fileName);
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(bytes);
bos.close();
fos.close();
}
/**
* *file转byte数组
*
* @param file
* @return
* @throws IOException
*/
public static byte[] fileToBytes(File file) throws IOException {
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
int n;
while ((n = fis.read(b)) != -1) {
bos.write(b, 0, n);
}
fis.close();
byte[] data = bos.toByteArray();
bos.close();
return data;
}
/**
* *删除文件目录
*
* @param dir
*/
public static void deleFiletDir(String dir) {
File file = new File(dir);
if (file.isDirectory()) {
delFile(file);
}
}
private static void delFile(File file) {
File[] files = file.listFiles();
if (files != null && files.length != 0) {
for (int i = 0; i < files.length; i++) {
delFile(files[i]);
}
}
file.delete();
}
}