将base64字符串转换为字节数组并以java文件格式保存

时间:2014-07-07 18:19:42

标签: java xml file audio base64

我在Linux上编写MP3文件时遇到问题。这是我的情况:

我有一条通过JMS传来的XML消息。 XML具有一个Base64编码字符串,表示MP3音频文件。在将XML编组到对象时,我使用JIBX。然后,JIBX将Base64编码的String转换为byte []。然后,我使用commons-io项目中的FileUtils将byte []写入文件系统。

void writeMP3File(final byte[] data, final String filePath) throws IOException {

    final File mp3File = new File(basePath + IOUtils.DIR_SEPARATOR + filePath);

    mp3File.getParentFile().mkdirs(); // Ensure any parent directories are created

    FileUtils.writeByteArrayToFile(mp3File, data);
}

当我稍后尝试播放该文件时,MP3播放器将无法播放该文件。此外,当我转到文件系统并查看文件时,我得到:

  

>文件TestFile1.mp3
  TestFile1.mp3:ASCII文本,没有行终止符

我尝试使用FileOutputStream来编写文件;并且会出现相同的结果。如何将byte []写入文件并设置MPEG的文件类型。所以,我想在文件系统上看到的是:

  

>文件TestFile1.mp3
  TestFile1.mp3:MPEG ADTS,第III层,v2.5,8 kBits,8 kHz,单声道

0 个答案:

没有答案