剛剛解碼的base64部分並將其保存在一個文件中(我假設的部分是一個真正的True Type字體)。
如果您使用的是Java 7:
String fontData = "font/truetype;charset=utf-8;base64,QUJDREU= ... ";
fontData = fontData.substring(fontData.indexOf("base64,") + 7);
File ttFile = new File("/path/to/your/file.ttf");
try (FileOutputStream output = new FileOutputStream(ttFile)) {
byte[] binary = javax.xml.bind.DatatypeConverter.parseBase64Binary(fontData);
output.write(binary);
} catch (IOException e) {
e.printStackTrace();
}
如果您使用的是Java 6:
String fontData = "font/truetype;charset=utf-8;base64,QUJDREU= ... ";
fontData = fontData.substring(fontData.indexOf("base64,") + 7);
File ttFile = new File("/path/to/your/file.ttf");
try {
FileOutputStream output = null;
try {
output = new FileOutputStream(ttFile);
byte[] binary = javax.xml.bind.DatatypeConverter.parseBase64Binary(fontData);
output.write(binary);
} finally {
if(output != null) {
output.close();
}
}
} catch (IOException e) {
e.printStackTrace();
}
如果您使用的是舊版本,請下載並添加到您的類路徑Apache Commons Codec ,並試試這個:
String fontData = "font/truetype;charset=utf-8;base64,QUJDREU= ... ";
fontData = fontData.substring(fontData.indexOf("base64,") + 7);
File ttFile = new File("/path/to/your/file.ttf");
FileOutputStream output = null;
try {
try {
output = new FileOutputStream(ttFile);
byte[] binary = new org.apache.commons.codec.binary.Base64().decode(fontData);
output.write(binary);
} finally {
if(output != null) {
output.close();
}
}
} catch (IOException e) {
e.printStackTrace();
}
你甚至可以在不用創建文件的情況下使用類[ByteArrayInputStream](ht TPS://docs.oracle.com/javase/7/docs/api/java/io/ByteArrayInputStream.html)。 –