Bonjour à tous!
Dans le cadre d'un projet personnel, je me tape la tête sur un problème
que je n'arrive pas à résoudre.
Mon but est d'insérer un .wav dans une colonne bytearea d'une table Postgresql,
et l'opération inverse, à savoir lire le BLOB et l'exporter dans un second fichier .wav...
Le problème est que la taille de mon fichier bis est quasiment le double, et j'ai beau chercher, je ne trouve pas pourquoi, j'ai la vague intuition que le problème vient de l'insertion en base...
le code de l'insertion
et celui du Select et export:
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
et la sortie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27String titre = "Premier titre"; resultset = statement.executeQuery("SELECT title, data FROM musique WHERE title = '" + titre + "' LIMIT 1"); resultset.next(); // System.out.println("Les lignes dans la base: "); // System.out.println(" TITLE = " + resultset.getString("title")); // System.out.println(" DATA = " + new String(resultset.getBytes("data"), 0, 32)); InputStream in = resultset.getBinaryStream("data"); File fichier_sortie = new File("testrecup.wav"); OutputStream out = new FileOutputStream(fichier_sortie); //Premier essai byte buffer[] = new byte[512 * 1024]; int nbLecture; while ((nbLecture = in.read(buffer)) != -1) { out.write(buffer, 0, nbLecture); } System.out.println("Taille fichier sortie: " + fichier_sortie.length()); out.flush(); out.close(); in.close(); resultset.close(); statement.close(); connection.close();
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
Est-ce quelqu'un voit quelque chose qui cloche?
D'avance merci

 

 
		
		 
        

 
			
			


 
   


 PostGresql, BLOB, Input/OutputStream, setBinaryStream
 PostGresql, BLOB, Input/OutputStream, setBinaryStream
				 Répondre avec citation
  Répondre avec citation
Partager