好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

1.网络资源转File

需要引入依赖commons-io

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

/**

   * 读取网络中的图片

   * @param url https://HdhCmsTestkziyue测试数据/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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

/**

     * 文件上传

     * @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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

/**

  * 文件类型转换

  *

  * @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;

}

4.File转字节数组

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

/**

     * 将文件转为字节数组

     * @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

?

1

2

3

4

5

6

public static BufferedImage FrameToBufferedImage(Frame frame) {

        //创建BufferedImage对象

        Java2DFrameConverter converter = new Java2DFrameConverter();

        BufferedImage bufferedImage = converter.getBufferedImage(frame);

        return bufferedImage;

    }

6.BufferedImage转MultipartFile

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

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;

 

    }

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

原文链接:https://blog.csdn.net/promsing/article/details/123269347

查看更多关于Java实现各种文件类型转换方式(收藏)的详细内容...

  阅读:82次