Java实现各种文件类型转换方式(收藏)

目录

  • 1.网络资源转File
  • 2.网络资源转MultipartFile
  • 3.File转MultipartFile
  • 4.File转字节数组
  • 5.Frame转BufferedImage
  • 6.BufferedImage转MultipartFile

1.网络资源转File 需要引入依赖commons-io
/*** 读取网络中的图片* @param url https://www.kziyue.com/wp-content/uploads/2019/06/5bca-hxyuaph9825616.jpg* @return*/public File URLToFile(String url){File file1 = new File("test.png"); try { URL url1 = new URL(url); FileUtils.copyURLToFile(url1,file1); } catch (IOException e) {e.printStackTrace(); }File absoluteFile = file1.getAbsoluteFile(); return file1; }


2.网络资源转MultipartFile 需要引入依赖spring-web
/*** 文件上传* @param urlStr url地址* @return multipartFile*/public MultipartFile fileUpload(String urlStr) throws Exception {try {//把地址转换成URL对象URL url = new URL(urlStr); //创建http链接HttpURLConnection conn = (HttpURLConnection)url.openConnection(); //设置超时间为3秒conn.setConnectTimeout(3*1000); //防止屏蔽程序抓取而返回403错误conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36)"); //得到输入流InputStream inputStream = conn.getInputStream(); //截取链接中的文件名String fileName= urlStr.substring(urlStr.lastIndexOf("/")+1); MultipartFile multipartFile = new MockMultipartFile(fileName,fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream); return multipartFile; } catch (Exception e) {e.printStackTrace(); }throw new Exception(); }


3.File转MultipartFile 需要引用的依赖spring-text,httpcore
/*** 文件类型转换** @param filePath 文件file* @return MultipartFile*/public static MultipartFile caseFileToMultipartFile(File filePath) {MultipartFile multipartFile = null; try {log.info("开始进行文件转换"); FileInputStream fileInputStream = new FileInputStream(filePath); multipartFile = new MockMultipartFile(filePath.getName(), filePath.getName(),ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream); } catch (IOException e) {e.printStackTrace(); return null; }return multipartFile; }

【Java实现各种文件类型转换方式(收藏)】
4.File转字节数组
/*** 将文件转为字节数组* @param file * @param size 1024* @return*/public static byte[] BufferStreamForByte(File file, int size) {byte[] content = null; try {BufferedInputStream bis = null; ByteArrayOutputStream out = null; try {FileInputStream input = new FileInputStream(file); bis = new BufferedInputStream(input, size); byte[] bytes = new byte[1024]; int len; out = new ByteArrayOutputStream(); while ((len = bis.read(bytes)) > 0) {out.write(bytes, 0, len); } bis.close(); content = out.toByteArray(); } finally {if (bis != null) {bis.close(); }if (out != null) {out.close(); }}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace(); }return content; }


5.Frame转BufferedImage 需要引入依赖javacv
public static BufferedImage FrameToBufferedImage(Frame frame) {//创建BufferedImage对象Java2DFrameConverter converter = new Java2DFrameConverter(); BufferedImage bufferedImage = converter.getBufferedImage(frame); return bufferedImage; }


6.BufferedImage转MultipartFile
public static MultipartFile fileCase(BufferedImage image){//得到BufferedImage对象// BufferedImage bufferedImage = JoinTwoImage.testEncode(200, 200, url); MultipartFile multipartFile= null; try {//创建一个ByteArrayOutputStreamByteArrayOutputStream os = new ByteArrayOutputStream(); //把BufferedImage写入ByteArrayOutputStreamImageIO.write(image, "jpg", os); //ByteArrayOutputStream转成InputStreamInputStream input = new ByteArrayInputStream(os.toByteArray()); //InputStream转成MultipartFilemultipartFile =new MockMultipartFile("file", "file.jpg", "text/plain", input); } catch (IOException e) {e.printStackTrace(); }return multipartFile; }

到此这篇关于Java 各种文件类型转换的方法的文章就介绍到这了,更多相关Java 文件类型转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读