精华内容
下载资源
问答
  • Java 各种文件类型转换的方法
    千次阅读 多人点赞
    2022-03-04 09:36:32

    目录

    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;
        }

    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;
     
        }
    
    

    如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。 

    更多相关内容
  • Java获取文件类型的5种方法

    千次阅读 2021-02-28 19:23:05
    前言工作中经常会用到,判断一个文件的...根据文件中前几个字符判断优点:可以判断出真实的文件类型缺点:速度慢,代码复杂下面我会针对每个方法,去测试验证,测试文件如下:1. 使用Files.probeContentTypeJav...

    069e505381919e83599b18ef23ab4058.jpg-wh_651x-s_648603462.jpg

    前言

    工作中经常会用到,判断一个文件的文件类型,这里总结一把,一般判断文件类型的原理有2种方式:

    1.根据文件扩展名判断

    优点:速度快,代码简单

    缺点:无法判断出真实的文件类型,例如一些伪造的文件或者没有后缀名称的文件

    2.根据文件流中前几个字符判断

    优点:可以判断出真实的文件类型

    缺点:速度慢,代码复杂

    下面我会针对每个方法,去测试验证,测试文件如下:

    1. 使用Files.probeContentType

    Java1.7开始,提供了用于解决MIME类型的方法 Files.probeContentType:

    publicstaticvoid test() throws IOException {

    Path path = new File("d:/test.png").toPath();

    String mimeType = Files.probeContentType(path);

    System.out.println(mimeType);

    }

    结果:

    cd0eb7760ac0a956d5125da92791fa1a.png-wh_600x-s_1093217018.png

    此方法利用已安装的FileTypeDetector实现来探查MIME类型。它调用每个实现的 probeContentType来解析类型。

    但是,其默认实现是特定于操作系统的,并且可能会失败,具体取决于我们使用的操作系统。

    结论:根据文件扩展名判断。

    2. 使用URLConnection

    URLConnection提供了几种用于检测文件的MIME类型的API。

    2.1 使用getContentType

    publicvoid test(){

    File file = new File("d:/test.png");

    URLConnection connection= file.toURL().openConnection();

    String mimeType = connection.getContentType();

    }

    结果:

    65962c6905288ec4b074f735f68c44e0.png-wh_600x-s_786952813.png

    结论:根据文件流中前几个字符判断。能够判断真实的文件类型,但是,这种方法的主要缺点是速度非常慢。

    2.2 使用guessContentTypeFromName

    publicvoid test(){

    File file = new File("d:/test.png");

    String mimeType = URLConnection.guessContentTypeFromName(file.getName());

    }

    结果:

    56c809b949d66a81b3d69b474cf2a19f.png-wh_600x-s_2838930864.png

    该方法利用内部的FileNameMap来判断MIME类型。

    结论:根据文件扩展名判断。

    2.3 使用guessContentTypeFromStream

    publicstaticvoid test() throws Exception {

    FileInputStream inputFile = new FileInputStream("d:/test.doc");

    String mimeType = URLConnection.guessContentTypeFromStream(new BufferedInputStream(inputFile));

    System.out.println(mimeType);

    }

    结果:

    2078d930080758fa1d5e4dcaf8aa3c40.png-wh_600x-s_2867127842.png

    结论:根据文件流中前几个字符判断。

    2.4 使用getFileNameMap

    使用URLConnection获得MIME类型的更快方法是使用getFileNameMap()方法:

    publicvoid test(){

    File file = new File("d:/test.png");

    FileNameMap fileNameMap = URLConnection.getFileNameMap();

    String mimeType = fileNameMap.getContentTypeFor(file.getName());

    }

    结果:

    7f3985d6784bb03bf79ef19d42db57f6.png-wh_600x-s_3818701968.png

    该方法返回URLConnection的所有实例使用的MIME类型表。然后,该表用于解析输入文件类型。

    当涉及URLConnection时,MIME类型的内置表非常有限。

    默认情况下,该类使用content-types.properties文件,其所在目录为JRE_HOME/lib。但是,我们可以通过使用content.types.user.table属性指定用户特定的表来扩展它 :

    System.setProperty("content.types.user.table","");

    结论:根据文件扩展名判断。

    3. 使用MimeTypesFileTypeMap

    该类是Java 6附带的,因此在使用JDK 1.6时非常方便。

    publicvoid test() {

    File file = new File("product.png");

    MimetypesFileTypeMap fileTypeMap = new MimetypesFileTypeMap();

    String mimeType = fileTypeMap.getContentType(file.getName());

    }

    结果:

    e3cbc02a3046001a1215e133b3b1e83f.png-wh_600x-s_1293532887.png

    在这里,我们可以将文件名或File实例本身作为参数传递给函数。但是,以File实例为参数的函数在内部调用重载方法,该方法接受文件名作为参数。

    在内部,此方法查找名为mime.types的文件以进行类型解析。请务必注意,该方法以特定顺序搜索文件:

    但是,如果找不到文件,它将返回application/octet-stream作为响应。

    结论:根据文件扩展名判断。

    4. 使用jmimemagicjMimeMagic

    是一个受限制许可的库,我们可以使用它来获取文件的MIME类型。

    配置Maven依赖:

    net.sf.jmimemagic

    jmimemagic

    0.1.5

    接下来,我们将探讨如何使用该库:

    publicvoid test() {

    File file = new File("d:/test.doc");

    MagicMatch match = Magic.getMagicMatch(file, false);

    System.out.println(match.getMimeType());

    }

    该库可以处理数据流,因此不需要文件存在于文件系统中。

    结果:

    cfc6a3ea6180017925db660a3d6523ba.png-wh_600x-s_2964447332.png

    结论:根据文件流中前几个字符判断。

    5. 使用Apache TikaApache Tika

    是一个工具集,可检测并从各种文件中提取元数据和文本。它具有丰富而强大的API,并带有[tika-core],我们可以利用它来检测文件的MIME类型。

    配置Maven依赖:

    org.apache.tika

    tika-core

    1.18

    接下来,我们将使用detect()方法来解析类型:

    publicvoid whenUsingTika_thenSuccess() {

    File file = new File("d:/test.doc");

    Tika tika = new Tika();

    String mimeType = tika.detect(file);

    }

    结果:

    b5757d9f6f2998d3d66e8357d22b0e3c.png-wh_600x-s_325866396.png

    结论:根据文件流中前几个字符判断。

    总结

    根据判断原理总结分类如下:

    67fc7d5f380d6ab2d6ae94693c146867.png-wh_600x-s_902407659.png

    具体如何选择,依据需求而定

    参考:https://www.baeldung.com/java-file-mime-type

    6d7fd34adc7041c19d84e8f6e79d15cb.png

    【编辑推荐】

    展开全文
  • java通过文件头内容判断文件类型

    热门讨论 2012-04-22 22:50:20
    java通过文件头内容判断文件类型
  • java根据文件判断文件类型

    千次阅读 2018-05-21 14:50:47
    原文https://www.cnblogs.com/chenglc/p/7117847.htmlimport java.io.FileInputStream; public class FileType{ public static String bytesToHexString(byte[] src) { StringBuilder stringBuilder = ne...

    
    
    原文https://www.cnblogs.com/chenglc/p/7117847.html

    import java.io.FileInputStream;
    
    public class FileType{
        public static String bytesToHexString(byte[] src) {
            StringBuilder stringBuilder = new StringBuilder();
            if (src == null || src.length <= 0) {
                return null;
            }
            for (int i = 0; i < src.length; i++) {
                int v = src[i] & 0xFF;
                String hv = Integer.toHexString(v);
                if (hv.length() < 2) {
                    stringBuilder.append(0);
                }
                stringBuilder.append(hv);
            }
            return stringBuilder.toString();
        }
    
        /**
         * @param args
         */
        public static void main(String[] args) throws Exception {
            FileInputStream is = new FileInputStream("F:\\相册\\微信图片\\03.jpg");
            byte[] b = new byte[3];
            is.read(b, 0, b.length);
            String xxx = bytesToHexString(b);
            xxx = xxx.toUpperCase();
            System.out.println("头文件是:" + xxx);
            String ooo = TypeDict.checkType(xxx);
            System.out.println("后缀名是:" + ooo);
    
        }
        
    
    }
    
    

    public class TypeDict {
    /**
     常用文件的文件头如下:(以前六位为准)
    JPEG (jpg),文件头:FFD8FF 
    PNG (png),文件头:89504E47 
    GIF (gif),文件头:47494638 
    TIFF (tif),文件头:49492A00 
    Windows Bitmap (bmp),文件头:424D 
    CAD (dwg),文件头:41433130 
    Adobe Photoshop (psd),文件头:38425053 
    Rich Text Format (rtf),文件头:7B5C727466 
    XML (xml),文件头:3C3F786D6C 
    HTML (html),文件头:68746D6C3E 
    Email [thorough only] (eml),文件头:44656C69766572792D646174653A 
    Outlook Express (dbx),文件头:CFAD12FEC5FD746F 
    Outlook (pst),文件头:2142444E 
    MS Word/Excel (xls.or.doc),文件头:D0CF11E0 
    MS Access (mdb),文件头:5374616E64617264204A 
    WordPerfect (wpd),文件头:FF575043 
    Postscript (eps.or.ps),文件头:252150532D41646F6265 
    Adobe Acrobat (pdf),文件头:255044462D312E 
    Quicken (qdf),文件头:AC9EBD8F 
    Windows Password (pwl),文件头:E3828596 
    ZIP Archive (zip),文件头:504B0304 
    RAR Archive (rar),文件头:52617221 
    Wave (wav),文件头:57415645 
    AVI (avi),文件头:41564920 
    Real Audio (ram),文件头:2E7261FD 
    Real Media (rm),文件头:2E524D46 
    MPEG (mpg),文件头:000001BA 
    MPEG (mpg),文件头:000001B3 
    Quicktime (mov),文件头:6D6F6F76 
    Windows Media (asf),文件头:3026B2758E66CF11 
    MIDI (mid),文件头:4D546864 
    */
        public static String checkType(String xxxx) {
            
            switch (xxxx) {
            case "FFD8FF": return "jpg";
            case "89504E": return "png";
            case "474946": return "jif";
    
            default: return "0000";
            }
        }
    
    }

    展开全文
  • java判断文件类型

    万次阅读 2019-05-28 16:10:59
    判断文件类型 在上传文件,判断文件类型的时候,往往会通过后缀名和头部信息判断,前者大大不靠谱,后者个别类型的文件不太好判断。这里推荐apache的一款tika,可以做文件判断还可以更强大的做内容解析。一下写出两...

    判断文件类型

    在上传文件,判断文件类型的时候,往往会通过后缀名和头部信息判断,前者大大不靠谱,后者个别类型的文件不太好判断。这里推荐apache的一款tika,可以做文件判断还可以更强大的做内容解析。一下写出两种方法判断,一个基于头部信息,一个基于tika.

    一:根据头部信息

    public class CheckFileType {
    
        private static Trace logger = Trace.getTrace(CheckFileType.class);
        // 缓存文件头信息-文件头信息
        public static final HashMap<String, String> mFileTypes = new HashMap<String, String>();
    
        static {
            // images
            mFileTypes.put("FFD8FF", "jpg");
            mFileTypes.put("89504E47", "png");
            mFileTypes.put("47494638", "gif");
            mFileTypes.put("49492A00", "tif");
            mFileTypes.put("424D", "bmp");
            //
            mFileTypes.put("41433130", "dwg"); // CAD
            mFileTypes.put("38425053", "psd");
            mFileTypes.put("7B5C727466", "rtf"); // 日记本
            mFileTypes.put("3C3F786D6C", "xml");
            mFileTypes.put("68746D6C3E", "html");
            mFileTypes.put("44656C69766572792D646174653A", "eml"); // 邮件
            mFileTypes.put("D0CF11E0", "doc");
            mFileTypes.put("D0CF11E0", "xls");//excel2003版本文件
            mFileTypes.put("5374616E64617264204A", "mdb");
            mFileTypes.put("252150532D41646F6265", "ps");
            mFileTypes.put("255044462D312E", "pdf");
            mFileTypes.put("504B0304", "docx");
            mFileTypes.put("504B0304", "xlsx");//excel2007以上版本文件
            mFileTypes.put("52617221", "rar");
            mFileTypes.put("57415645", "wav");
            mFileTypes.put("41564920", "avi");
            mFileTypes.put("2E524D46", "rm");
            mFileTypes.put("000001BA", "mpg");
            mFileTypes.put("000001B3", "mpg");
            mFileTypes.put("6D6F6F76", "mov");
            mFileTypes.put("3026B2758E66CF11", "asf");
            mFileTypes.put("4D546864", "mid");
            mFileTypes.put("1F8B08", "gz");
        }
    
        /**
         * @return 文件头信息
         * @author liang.pan
         * <p>
         * 方法描述:根据输入流获取文件头信息
         */
        public static String getFileType(InputStream inputStream) {
            return mFileTypes.get(getFileHeader(inputStream));
        }
    
        /**
         * @return 文件头信息
         * @author liang.pan
         * <p>
         * 方法描述:根据输入流获取文件头信息
         */
        public static String getFileHeader(InputStream inputStream) {
            InputStream is = null;
            String value = null;
            try {
                is = inputStream;
                byte[] b = new byte[4];
                /*
                 * int read() 从此输入流中读取一个数据字节。int read(byte[] b) 从此输入流中将最多 b.length
                 * 个字节的数据读入一个 byte 数组中。 int read(byte[] b, int off, int len)
                 * 从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。
                 */
                is.read(b, 0, b.length);
                value = bytesToHexString(b);
            } catch (Exception e) {
            } finally {
                if (null != is) {
                    try {
                        is.close();
                    } catch (IOException e) {
                    }
                }
            }
            logger.info(">>>>>文件的头部信息:" + value);
            if (StringUtils.startsWith(value, "FFD8FF")) {
                value = value.substring(0, 6);
            }
            return value;
        }
    
        /**
         * @param src 要读取文件头信息的文件的byte数组
         * @return 文件头信息
         * @author liang.pan
         * <p>
         * 方法描述:将要读取文件头信息的文件的byte数组转换成string类型表示
         */
        private static String bytesToHexString(byte[] src) {
            StringBuilder builder = new StringBuilder();
            if (src == null || src.length <= 0) {
                return null;
            }
            String hv;
            for (int i = 0; i < src.length; i++) {
                // 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式,并转换为大写
                hv = Integer.toHexString(src[i] & 0xFF).toUpperCase();
                if (hv.length() < 2) {
                    builder.append(0);
                }
                builder.append(hv);
            }
            return builder.toString();
        }
    
    }

    二:tika

    引入依赖
    <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-core</artifactId>
        <version>1.20</version>
    </dependency>
    
    public class TikaToolKit {
    
        /**
         * 获取类型
         * @param file
         * @return
         * @throws IOException
         * @throws TikaException
         * @throws SAXException
         */
        public static String getMimeType(File file) {
            if (file.isDirectory()) {
                return "the target is a directory";
            }
    
            AutoDetectParser parser = new AutoDetectParser();
            parser.setParsers(new HashMap<MediaType, Parser>());
            Metadata metadata = new Metadata();
            metadata.add(TikaMetadataKeys.RESOURCE_NAME_KEY, file.getName());
            try (InputStream stream = new FileInputStream(file)) {
                parser.parse(stream, new DefaultHandler(), metadata, new ParseContext());
            }catch (Exception e){
                throw new RuntimeException();
            }
            return metadata.get(HttpHeaders.CONTENT_TYPE);
        }
    
        /**
         * 判断是否是图片
         * @param file
         * @return
         * @throws TikaException
         * @throws IOException
         * @throws SAXException
         */
        public static boolean isImage(File file){
            String type = getMimeType(file);
            System.out.println(type);
            Pattern p = Pattern.compile("image/.*");
            Matcher m = p.matcher(type);
            return m.matches();
        }
    }

    常见文件类型

    MimeType    文件类型
    application/msword    word(.doc)
    application/vnd.ms-powerpoint    powerpoint(.ppt)
    application/vnd.ms-excel    excel(.xls)
    application/vnd.openxmlformats-officedocument.wordprocessingml.document    word(.docx)
    application/vnd.openxmlformats-officedocument.presentationml.presentation    powerpoint(.pptx)
    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet    excel(.xlsx)
    application/x-rar-compressed    rar
    application/zip    zip
    application/pdf    pdf
    video/*    视频文件
    image/*    图片文件
    text/plain    纯文本
    text/css    css文件
    text/html    html文件
    text/x-java-source    java源代码
    text/x-csrc    c源代码
    text/x-c++src    c++源代码
     

    展开全文
  • Java实现文件写入——IO

    千次阅读 2021-02-12 14:52:34
    是一组有序的数据序列,根据操作的类型,分为输入和输出。程序从输入读取数据,向输出写入数据。Java是面向对象的程序语言,每一个数据都是一个对象,它们提供了各种支持“读入”与“写入”操作的类。...
  • java的几种IO读取文件方式

    千次阅读 2021-02-28 10:42:09
    一、超类:字节: InputStream(读入) OutputStream(写出)字符: Reader(字符 读入) Writer (字符写出)二、文件操作字节: FileInputStream ,FileOutputStream字符: FileReader, FileWriter(用法...
  • Java流文件

    千次阅读 多人点赞 2018-09-02 19:03:25
    Java所有的I/O机制都是基于数据进行输入输出,这些数据表示了字符或者字节数据的流动序列。Java的I/O提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据的方式读写它的数据的方法。 ...
  • java后台返回文件流下载文件

    千次阅读 2021-02-12 16:27:10
    前端html请求:let url = '/indexController/...path='+param;$("#filedownload").attr("href",url);document.getElementById("filedownload").click();java后端代码:@RequestMapping("/getFileOutputStream...
  • JAVA文件的形式返回

    千次阅读 2021-02-20 10:30:00
    JAVA文件的形式返回 @RequestMapping("/GetFile") public void getFile(HttpServletRequest request , HttpServletResponse response) throws IOException { //读取路径下面的文件 File file = new File(...
  • 是一组有序的数据序列,根据操作类型,分为输入和输出。程序从输入读取数据,向输出写入数据。Java是面向对象的程序语言,每一个数据都是一个对象,它们提供了各种支持“读入”与“写入”操作的类。...
  • java根据文件判断文件类型(后缀名) import java.io.FileInputStream; public class FileType{ public static String bytesToHexString(byte[] src) { StringBuilder stringBuilder ...
  • 关于如何判断一个文件类型,在如何判断一个文件类型_jimmyleeee的博客-CSDN博客已经介绍了,但是在实际运用于真正的文件上传时,还是有些注意事项需要注意的。 在进入主题之前,首先需要简单介绍一下...
  • java中如何将流转换成文件类型

    千次阅读 2021-03-04 02:47:54
    //本意是这个地方是一个图片,在数据库中的格式是Blob类型,希望能转换成File类型,放在user对象中 } } catch (Exception e) { e.printStackTrace(); } try { pstmt.close(); connection.close(); } catch ...
  • java文件流与转换

    千次阅读 2020-04-23 13:41:38
    文件字节 FileInputStream FileOutputStream 文件字符 FileReader FileWriter 文件字节 FileInputStream:文件字节输入 定义 :public class FileInputStream extends ...
  • java接受文件流

    千次阅读 2019-08-30 10:01:41
    java 接受文件流 1. 接受响应体: public class BinaryResponse { private Integer statusCode = null; private byte[] result = null; private boolean success = false; private Map<String, String>....
  • 根据文件获取真实文件类型

    千次阅读 2020-05-18 16:10:53
    import java.io.FileInputStream; public class FileType{ public static String bytesToHexString(byte[] src) { StringBuilder stringBuilder = new StringBuilder(); if (src == null || src.length <= 0)...
  • java通过MultipartFile进行文件、图片上传和下载,以及文件流 package com.fh.controller; import com.fh.util.UuidUtil; import org.apache.commons.io.IOUtils; import org.apache.ibatis.javassist.tools....
  • 此工具根据文件的前几位bytes猜测文件类型,对于文本、zip判断不准确,对于视频、图片类型判断准确。 需要注意的是,xlsx、docx等Office2007格式,全部识别为zip,因为新版采用了OpenXML格式,这些格式本质上是XML...
  • Java基础-3】吃透Java IO:字节、字符、缓冲

    万次阅读 多人点赞 2020-09-23 20:12:33
    什么是Java-IO?字符和字节的区别与适用场景是什么?缓冲到底实现了什么?如何高效地读写文件? 本文用大量的示例图和实例,带你吃透Java IO。
  • Java文件输入输出

    千次阅读 2019-05-08 16:28:05
    在Android开发中,文件操作还是比较频繁的,本文主要记录下文件的加载,写入等...按照传输的单位可以分为字节与字符,字节传输的是二进制字节,可操作任何类型文件,字符传输的是字符,只能用来读取文本文...
  • Java中如何判断文件类型

    千次阅读 2019-12-09 09:57:56
    目前看到的有两种方式: 根据文件后缀 根据文件魔数 根据文件后缀 满足一般需要,但如果文件后缀被手工修改,则可能判断...魔数概念就不在此赘述,此种方式会通过读取文件二进制字节的方式,获取文件开头的几个...
  • JAVA 实现返回PDF文件流并进行下载

    千次阅读 2019-10-14 16:23:44
    JAVA 实现返回PDF文件流并进行下载 首先确保本地存放pdf 保证通过路径可以拿到文件 我这边把pdf放在e盘下的目录 1.前台方法 原生ajax 发送请求返回文件流进行下载 function downloadPdf() { //后台下载文件流地址 ...
  • Java实现文件写入——IO(输入输出详解)

    万次阅读 多人点赞 2017-09-09 20:43:12
    是一组有序的数据序列,根据操作的类型,分为输入和输出。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;程序从输入读取数据,向输出写入数据。Java是面向对象的程序语言,每一个数据都是一个...
  • java文件转换成pdf

    千次下载 热门讨论 2014-03-31 15:00:53
    把其他文件类型转换为pdf,java
  • Js之Blob类型以及文件流下载流程

    千次阅读 2021-03-08 09:48:28
    以下是MDN的官方解释:Blob 对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成ReadableStream来用于数据操作。Blob 表示的不一定是JavaScript原生格式的数据。...
  • 1.实现OSS文件上传,则需要准备的东西是:连接点endpoint、秘钥key、秘钥secret private static final String endpoint = "<your endpoint>"; private static final String accessKeyId = "your ...
  • java文件流读写操作

    万次阅读 多人点赞 2018-01-08 23:13:19
    file(内存)----输入---->【程序】----输出---->file(内存) 当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的类是InputStreamReader,...
  • java文件流方式下载文件

    万次阅读 2017-05-12 15:23:24
    该方式Java中基本上都通用 这里我使用的是SpringMVC,不过它在这里的唯一用途就是用来获取ServletContext对象,这个对象的用途,下面实例中有说明需要用到两个jar包: commons-fileupload.jar 和 commons-io.jar代码...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 458,611
精华内容 183,444
关键字:

java流的文件类型

java 订阅