Написание видео файлов на Java - PullRequest
4 голосов
/ 29 марта 2012

Я пытаюсь найти способ сохранить видеофайл. Первоначально я помещал видеофайлы как данные больших двоичных объектов в базу данных, а теперь я пытаюсь вернуть данные больших двоичных объектов, преобразовать их в байты, а затем записать в новый файл. Я добился успеха в этом, но проблема в том, что я не могу заставить полученные файлы работать. Я пытался хранить, извлекать и записывать файлы .flv и .mp4, но ни один из них не работает: / Кто-нибудь может мне помочь? Очень признателен! :)

Вот мой код::)

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) {
}

1 Ответ

2 голосов
/ 29 марта 2012

В первую итерацию цикла while записан байт '\ 0', который не берется из bis.read ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...