Re: Store a file in a bytea
От | ml-tb |
---|---|
Тема | Re: Store a file in a bytea |
Дата | |
Msg-id | 201102101836.06645.ml-tb@emagixx.de обсуждение исходный текст |
Ответ на | Store a file in a bytea (mmg <mathias.degroof@gmail.com>) |
Список | pgsql-jdbc |
Hi, why do you not use ResultSet.getBinaryStream() to read the content? Bye Thomas Am Donnerstag, 10. Februar 2011 schrieb mmg: > Hi all, > > I'm creating an application that will store files in a postresql > database and which will retrieve them later on. I store my data in a > bytea column. The problem I'm having is that when I retrieve the > data later and write it out, the resulting file is not the same as > the original. When I open the file it looks as though the ASCII > codes were written out instead of the data itself (so it looks as if > the ASCII was encoded again as ASCII, causing me to see ASCII codes > when I open the file). I created a simple test program to > demonstrate this: > > Connection conn = > DriverManager.getConnection("jdbc:postgresql://localhost/testdb", > "test", "test"); > conn.createStatement().executeUpdate("DELETE FROM testtable"); > PreparedStatement pstmt = conn.prepareStatement("INSERT INTO > testtable(data) VALUES(?)"); > File file = new File("c:/t.txt"); > FileInputStream fis = new FileInputStream(file); > pstmt.setBinaryStream(1, fis, (int) file.length()); > pstmt.executeUpdate(); > ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM > testtable"); > if (rs.next()) { > byte[] data = rs.getBytes("data"); > FileOutputStream fos = new FileOutputStream("c:/t2.txt"); > fos.write(data); > fos.close(); > } > rs.close(); > conn.close(); > > There is one table: testtable with a data colum which is a bytea. I > read the file c:/t.txt, store this as a stream then read it out > again and write it to c:/t2.txt. When I open t2.txt, I see the ASCII > codes instead of the actual text. I don't know what I'm doing wrong. > I've tried reading it as a stream from the database, but that > doesn't work either. Any help is much appreciated.
В списке pgsql-jdbc по дате отправления: