Bonjour,
Depuis un bout de temps je cherche à extraire un fichier Document MS Word stocké dans une table sur MS Access.
j'ai utilisé POI et UcanAccess mais ça ne marche pas , j'arrive à extraire le fichier mais quand je l'ouvre on me demande de choisir l'encodage ! ce n'est pas lisible.
selectedBulletin = le bulletin sélectionné pour extraire le fichier correspondant.
getBinaryStream(6) = la 6eme colonne de la table Bulletin_d'essaie-tab contient le fichier MS World .
j'ai essayé d'écrire via fos.Write(b) et aussi j'ai essayé via IOUtils , mais le même résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
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
27
28
29
30 try (Connection con = DriverManager.getConnection(BD_URL); Statement stmt = con.createStatement(); ResultSet res = stmt.executeQuery("SELECT * FROM [Bulletin_d'essai-tab] " + "WHERE [N° BE]='" +selectedBulletin.getNumBE() +"'");) { while(res.next()){ if(res.getBinaryStream(6)!=null){ InputStream inputStream; Blob blob= res.getBlob(6); inputStream=blob.getBinaryStream(); String desktopDirectory = "C:\\Users\\Nirspote\\Desktop\\Tiss" ; File nv_fichier = new File(desktopDirectory +"\\" +selectedBulletin.getNumBE() +".txt"); FileOutputStream fos = new FileOutputStream(nv_fichier); int b =0; while ((b = inputStream.read()) != -1) { /* IOUtils.copy(inputStream, fos); IOUtils.closeQuietly(inputStream); IOUtils.closeQuietly(fos); */ fos.write(b); } fos.close();
j'ai aussi essayer cette méthode d'écriture mais le même résultat.
--
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Files.copy( inputStream, nv_fichier.toPath(), java.nio.file.StandardCopyOption.REPLACE_EXISTING);
l'accès à la base de données Ms Access se fait via UcanAccess
Merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 private static final String VAR_BD_URL = "C:/Users/Nirspote/Desktop/Tiss/Base de données LHN.accdb"; private static final String BD_URL ="jdbc:ucanaccess://" +VAR_BD_URL;
Partager