Store a file in a bytea
От | mmg |
---|---|
Тема | Store a file in a bytea |
Дата | |
Msg-id | 1297353712985-3379578.post@n5.nabble.com обсуждение исходный текст |
Ответы |
Re: Store a file in a bytea
Re: Store a file in a bytea |
Список | pgsql-jdbc |
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. -- View this message in context: http://postgresql.1045698.n5.nabble.com/Store-a-file-in-a-bytea-tp3379578p3379578.html Sent from the PostgreSQL - jdbc mailing list archive at Nabble.com.
В списке pgsql-jdbc по дате отправления: