java 文件操作相关工具类
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;/*** @author ycs*/
public class YcsFileUtils {/*** 文件系统主要由inode和block组织。一个block一般4K大小,即使写入1字节到文件,文件所占大小也是4K* * 详见:https://mp.weixin.qq.com/s?__biz=MjM5Njg5NDgwNA==&mid=2247487146&idx=1&sn=2786cd64da86d3d3c976ec8ddf0cbbf8&chksm=a6e30f91919486871b7e3e2530e8915a6d9034de905fcd81d9b673ac2d5b745f84dee936e9a8&cur_album_id=1371808335259090944&scene=189#wechat_redirect*/
public static final int BLOCK = 4 * 1024;/*** 读取文件的byte数组到输出流** @param filePath 文件路径 + 文件名* @param os 输出流* @return*/public static void readBytes(String filePath, OutputStream os) {try (FileInputStream fileInputStream = new FileInputStream(filePath)) {byte[] b = new byte[BLOCK];int length;while ((length = fileInputStream.read(b)) > 0) {os.write(b, 0, length);}} catch (IOException e) {throw new RuntimeException("读取文件的byte数组到输出流失败!filePath = " + filePath + "\n" + e);}}/*** 写入byte数组数据到文件中** @param data 数据* @param filePath 文件路径 + 文件名* @return 目标文件*/public static void writeBytes(byte[] data, String filePath) {try (FileOutputStream outputStream = new FileOutputStream(filePath)) {outputStream.write(data);} catch (IOException e) {throw new RuntimeException("写入byte数组数据到文件中!filePath = " + filePath + "\n" + e);}}/*** 删除文件** @param filePath 文件路径 + 文件名* @return*/public static boolean deleteFile(String filePath) {boolean flag = false;File file = new File(filePath);// 路径为文件且不为空则进行删除if (file.isFile() && file.exists()) {file.delete();flag = true;}return flag;}/*** 获取文件名后缀* * 例如: xxx.txt, 返回: txt** @param fileName 文件名* @return (不含".")*/
public static String getFileType(String fileName) {int separatorIndex = fileName.lastIndexOf(File.separator);if (separatorIndex < 0) {return "";}return fileName.substring(separatorIndex + 1).toLowerCase();}/*** 获取文件真实类型** @param photoByte 文件字节码* @return 后缀(不含".")*/public static String getFileExtendName(byte[] photoByte) {if ((photoByte[0] == 71) && (photoByte[1] == 73) && (photoByte[2] == 70) && (photoByte[3] == 56)&& ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97)) {return "gif";}if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70)) {return "jpg";}if ((photoByte[0] == 66) && (photoByte[1] == 77)) {return "bmp";}if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) {return "png";}throw new RuntimeException("获取文件真实类型失败!");}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
