16. august 2001 - 09:09Der er
2 kommentarer og 1 løsning
binær data fra sqldatabase til ftpserver
Jeg har nogle lydfiler i en sqlserver (mssql2000), og vil hente dem ud og lægge dem på en ftpserver. Dette har jeg forsøgt, men lydfilerne er ændret når de kommer over på ftpserveren. følgende kode henter lyden ud og lægger i en fil på ftpserver, men forvansker nogle bytes: boolean HentLydfil(SQL db, java.io.Writer MsgWriter) { if (exists(db)) try { String stmt=\"select Message from dbo.RequestMsg where Id=\"+id; db.ExecuteSQL(stmt); if (db.rs.next()) { java.io.InputStream msg = db.rs.getBinaryStream(\"Message\"); int d = msg.read(); while (d!=-1) { MessageWriter.write(d); d = msg.read(); }
Jeg tror dit problem kan skyldes at super klassen til den ftpwriter er BufferedWriter, som har en write metode der skriver en \'character\' og sådanne en er på 16 bit i java :(
Jeg tror du skal loade f.eks. 4Kbyte data ind fra sqlbase i et byte array, typecaste det til et char[] og så skrive med write.
if(data!=-1) { for(int x=0;x<data;x++) { outData[x]=(char)webData[x]; } //nu er buffer typecastet (gad vide om man kan uden en løkke ??) MessageWriter.write(outData); //gem op til 8192 chars } } } catch(IOException e) { e.printStackTrace(System.out); }
} } } }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.