I have been using URLConnection.guessContentTypeFromName(String fname) to detect what mime type I need to use in my headers to return different documents.
It was working fine until I tested with fname = "test.csv";. I can make it work with test.jpg or test.pdf but not with test.csv.
String fname = "test.csv";
String mimeType = URLConnection.guessContentTypeFromName(fname);
System.out.println(mimeType);
I have no issue getting the good mimetype for pdf and jpg extension but receive null with the csv one.
I can't seem to find any reason on google as to why it doesn't work. Is it normal behavior or am I missing something from the documentation ?
As a side note, I know of other ways to get the mime type from the filename but was wondering about this.
A jvm brings along a list of file names and their mime types. For example openjdk specifies them for windows and linux.
You can override these definitions by specifying a jvm property
content.types.user.tablepointing to your definition ofcontent-types.propertiesas specified by URLConnection#getFileNameMap().Support for csv was only added recently with https://bugs.openjdk.org/browse/JDK-8273655