public static void writeFile(String theFileName, String theFilePath)
{
try {
File currentFile = new File("plugins/mcMMO/Resources/"+theFilePath+theFileName);
//System.out.println(theFileName);
@SuppressWarnings("static-access")
JarFile jar = new JarFile(plugin.mcmmo);
JarEntry entry = jar.getJarEntry("resources/"+theFileName);
InputStream is = jar.getInputStream(entry);
byte[] buf = new byte[(int)entry.getSize()];
is.read(buf, 0, buf.length);
FileOutputStream os = new FileOutputStream(currentFile);
os.write(buf);
os.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
さて、私のプログラムでは、プログラムのJar内にさまざまなリソースが保持されています。プログラムが実行されると、この関数に渡された特定のファイルがユーザーのコンピューターのHDDに書き込まれます。すべてが書き込まれますが、画像だけが 100% 正しく出力されます。サウンドファイルはそれほど幸運ではありません。
基本的に、サウンドを正しく書き込むことができません。ファイル サイズは正しいのですが、完全な長さのオーディオではなく、ほんの一瞬のオーディオしか含まれていません。ここで何か不足していますか?私はすべて正しいことをしたように見えますが、それが本当ならここに投稿することはありません.
この問題をグーグルで調べようと最善を尽くしましたが、失敗しました。
これが機能しない理由についての推測は驚くべきものです!! :)