多用途互联网邮件扩展(英语:Multipurpose Internet Mail Extensions,缩写:MIME)是一个互联网标准,它扩展了电子邮件标准,使其能够支持:
- 非ASCII字符文本;
- 非文本格式附件(二进制、声音、图像等);
- 由多部分(multiple parts)组成的消息体;
- 包含非ASCII字符的头信息(Header information)。这个标准被定义在 RFC 2045、RFC 2046、RFC 2047、RFC 2048、RFC 2049 等RFC中。
MIME改善了由 RFC 822 转变而来的 RFC 2822 ,这些旧标准规定电子邮件标准并不允许在邮件消息中使用7位ASCII字符集以外的字符。正因如此,一些非英语字符消息和二进制文件,图像,声音等非文字消息原本都不能在电子邮件中传输(MIME可以)。MIME规定了用于表示各种各样的数据类型的符号化方法。此外,在万维网中使用的HTTP协议中也使用了MIME的框架,标准被扩展为互联网媒体类型。
上学期写的senCQ(Java特别版)当时准备使用但由于时间仓促没有仔细研究就无脑切后缀了;现在回过头来研究一下。
发现MIME的Java官方实现也几乎是更具后缀猜嘛?
对于这些你能想到的功能不要一上来就想着自己造轮子(当然如果时间允许,自己造个轮子又何妨?)
首先我们要看一下这个功能官方是否已经实现?比如base64编码,官网已经实现;而我却不知道跑去apache下codec多跑冤枉路!
如果官方已经帮我们办好的话,并且官方的轮子可以在我们的应用场景下转起来;那么就官方即可。
如果官方没有轮子或者官方的轮子不是很好,那么我们就得找第三方的轮子了!
最后!!!很不幸,没有找到第三方轮子,亦或是第三方的轮子根本转不了,这时候你可以尝试修复一下别人的轮子(上次闲着写了个senMusic)找了个网上找了个lrc-parser的轮子,结果转的不是很顺溜,简单修复一下就OK了;如果没有别人的轮子,那就自己动手,丰衣足食!
说了这么多,直接进入正题吧!直接看代码,一目了然!
package com.company;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) throws IOException {
// write your code here
Path path = Paths.get("D:/未命名.html");
System.out.println(Files.probeContentType(path));
}
}
text/html
Process finished with exit code 0
结果如上!!!
但是当我把文件后缀名改为exe结果又如下所示
application/x-msdownload
Process finished with exit code 0
所以说嘛,只是简单的后缀判断,猜测而已不然为啥叫**probeContentType
**