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

网友投稿 1323 2022-08-23


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

目录1.网络资源转File2.网络资源转MultipartFile3.File转MultipartFile4.File转字节数组5.Frame转BufferedImage6.BufferedImage转MultipartFile

1.网络资源转File

需要引入依赖commons-io

/**

* 读取网络中的图片

* @param url https://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.lastIndexhttp://Of("/")+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 {

http:// 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;

}

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 block

e.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 {

//创建一个ByteArrayOutputStream

ByteArrayOutputStream os = new ByteArrayOutputStream();

//把BufferedImage写入ByteArrayOutputStream

ImageIO.write(image, "jpg", os);

//ByteArrayOutputStream转成InputStream

InputStream input = new ByteArrayInputStream(os.toByteArray());

//InputStream转成MultipartFile

multipartFile =new MockMultipartFile("file", "file.jpg", "text/plain", input);

} catch (IOException e) {

e.printStackTrace();

}

return multipartFile;

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数据结构与算法Java版-数组分割(数据结构与算法 Java)
下一篇:排序算法python版(5)-归并排序算法(python各种排序算法)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~