2012-03-29 168 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

欢迎来到Stackoverflow。请向我们展示您的代码,否则我们无法提供帮助。您可以通过点击标签下方的“编辑”链接来修改您的问题。你也许想读[问],也许[你有什么尝试?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – nfechner 2012-03-29 18:36:23

+0

谢谢你的答复。嗯,我一直在研究如何将它保存到文件中,并认为它会很直接,而且我已经保存了这些文件,但是我不能让它们在我的媒体播放器上运行。只是觉得我不得不做其他事情才能使这些文件起作用?非常感谢:) – 2012-03-29 18:59:36

+0

不要忘记blyte变量,我之前使用过它,但我没有了,并且还没有删除它:) – 2012-03-29 19:02:41

回答

2

有一个在while循环不来自bis.read的第一次迭代中写入一个FOS“\ 0”字节()。

+0

谢谢!我完全没有注意到!非常感谢! :) – 2012-03-29 19:47:13