2012-03-29 34 views
4

動画ファイルを保存する方法を見つけようとしています。最初はビデオファイルをblobデータとしてデータベースに入れていましたが、今はBLOBデータを元に戻し、バイトに変換してから新しいファイルに書き込もうとしています。私はこれを成功させましたが、問題は、結果のファイルを実行させることができないということです。私は、.flvと.mp4ファイルの保存、取得、書き込みを試みましたが、どちらも動作しませんでした:/誰も助けてくれますか?とても有難い! :)Javaで動画ファイルを書き込む

はここに私のコードです::)

try { 
    Class.forName("com.mysql.jdbc.Driver").newInstance(); 
    con = DriverManager.getConnection(connectionURL, "root","password"); 
    Statement st1 = (Statement) con.createStatement(); 
    PreparedStatement pstmt = null; 
    ResultSet rs = null; 
    pstmt = con.prepareStatement("SELECT video_file from video where video_id = " + video_id); 
    rs = pstmt.executeQuery(); 
    Blob blob = null; 
    byte[] blyte = null; 
    if(rs.next()) { 
     blob = rs.getBlob("video_file"); 
     InputStream is = blob.getBinaryStream(); 
     FileOutputStream fos = new FileOutputStream("C:\\Downloads\\file2.mp4"); 
     int b = 0; 
     while(b != -1){ 
      fos.write(b); 
      b = bis.read(); 
     } 
    } 
//exceptions beyond this point 
} catch (InstantiationException e) { 
} catch (IllegalAccessException e) { 
} catch (ClassNotFoundException e) { 
} catch (SQLException e) { 
} catch (FileNotFoundException e) { 
} catch (IOException e) { 
} 
+0

ようこそ。あなたのコードを教えてください。さもなければ私たちは助けません。タグの下にある[編集]リンクをクリックすると、質問を変更できます。また、あなたは[ask]と、[何を試しましたか?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – nfechner

+0

をお返事ありがとうございます。うーん、私はそれをファイルに保存することを研究していて、それはかなり簡単だと思っていましたが、私はすでにファイルを保存しましたが、私はメディアプレーヤーで実行できません。私はファイルを動作させるために他の何かをしなければならないと思っただけですか?ありがとうございました:) –

+0

ブライテ変数を忘れてしまいましたが、私はそれ以前に使用していましたが、もう削除しませんでした: –

答えて

2

bis.readから来ていないwhileループの最初の反復でFOSに書かれた「\ 0」バイトがあります()。

+0

ありがとう!私はそれをまったく気付かなかった!どうもありがとうございます! :) –

関連する問題