Esiste una comoda libreria che consente , dato l'array di byte, di determinare il mime type del file.
La libreria si chiama jmimemagic-0.1.0.jar ( si può scaricare qui ).
Richiede come dipendenza i 2 seguenti jar:
La libreria si chiama jmimemagic-0.1.0.jar ( si può scaricare qui ).
Richiede come dipendenza i 2 seguenti jar:
- commons-logging.jar;
- jakarta-oro.jar.
Magic m=new Magic();
byte[] lb=FileUtil.load(new File("file/WS.png"));
MagicMatch match = m.getMagicMatch(lb);
System.out.println(match.getMimeType());
L'array di byte dal file è stato ottenuto
con il seguente metodo statico di una classe denominata FileUtil di cui incollo il codice:
import java.io.*;
public class FileUtil {
public final static byte[] load(String fileName)
{
try {
FileInputStream fin=new FileInputStream(fileName);
return load(fin);
}
catch (Exception e) {
return new byte[0];
}
}
public final static byte[] load(File file)
{
try {
FileInputStream fin=new FileInputStream(file);
return load(fin);
}
catch (Exception e) {
return new byte[0];
}
}
public final static byte[] load(FileInputStream fin)
{
byte readBuf[] = new byte[512*1024];
try {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
int readCnt = fin.read(readBuf);
while (0 < readCnt) {
bout.write(readBuf, 0, readCnt);
readCnt = fin.read(readBuf);
}
fin.close();
return bout.toByteArray();
}
catch (Exception e) {
return new byte[0];
}
}
}
Nessun commento:
Posta un commento