2012-03-29 3 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. Пожалуйста, покажите нам свой код, иначе мы не сможем. Вы можете изменить свой вопрос, нажав ссылку «изменить» под тегами. Также вы можете прочитать [ask] и, возможно, [что вы пробовали?] (Http://mattgemmell.com/2008/12/08/what-have-you-tried/) – nfechner

+0

благодарим за ответ. Умм, я изучал вопрос о сохранении файла и думал, что это будет довольно просто, и опять же, я уже сохранил файлы, но я просто не могу заставить их работать на моих медиаплеерах. Просто подумал, что мне нужно сделать что-то еще, чтобы файлы работали? Большое спасибо :) –

+0

nevermind the blyte variable, я использовал его раньше, но я больше не сделал этого и еще не удалил его :) –

ответ

2

Существует «\ 0» байт записывается ФОС в первой итерации While-цикл, который не приходит от bis.read().

+0

Спасибо! Я этого не замечал! Спасибо огромное! :) –

Смежные вопросы