Je lis une colonne BLOB à partir d'une base de données Oracle, puis l'écrire dans un fichier comme suit:comment régler BufferedInputStream read()?
public static int execute(String filename, BLOB blob)
{
int success = 1;
try
{
File blobFile = new File(filename);
FileOutputStream outStream = new FileOutputStream(blobFile);
BufferedInputStream inStream = new BufferedInputStream(blob.getBinaryStream());
int length = -1;
int size = blob.getBufferSize();
byte[] buffer = new byte[size];
while ((length = inStream.read(buffer)) != -1)
{
outStream.write(buffer, 0, length);
outStream.flush();
}
inStream.close();
outStream.close();
}
catch (Exception e)
{
e.printStackTrace();
System.out.println("ERROR(img_exportBlob) Unable to export:"+filename);
success = 0;
}
}
La taille du fichier est d'environ 3 Mo et il faut 40-50s lire la mémoire tampon. C'est en fait une image 3D. Alors, y a-t-il un moyen par lequel je peux réduire cette fois?
Probablement pas au niveau Java. Je ne pense pas que l'écriture dans le fichier soit le goulot d'étranglement. Cela prend probablement autant de temps à lire et à jeter. – Thilo