Forums : XPCom

Aller à la discussion :  Plus récente Plus ancienne

# Lecture d'un fichier binaire

Envoyé par : harobed

Date : 19/05/2004 11:21

Bonjour,

voici ma première question :) :

comment lire un fichier binaire ?

D'après mes premières recherches, je dois utiliser nsIBinaryInputStream.

voici un exemple :

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var LocalFile = new  Components.Constructor("@mozilla.org/file/local;1", "nsILocalFile");
var file = new LocalFile();

file.initWithPath( "/tmp/f.pdf" );

dump("Taille :"+file.fileSize+"\n");
var FileInputStream = new Components.Constructor("@mozilla.org/network/file-input-stream;1", "nsIFileInputStream");
var inputStream = new FileInputStream();

inputStream.init( file, 0x04 | 0x08, 420, 0 );
var BinaryInputStream = new components.Constructor("@mozilla.org/binaryinputstream;1", "nsIBinaryInputStream");
var a=new BinaryInputStream();
a.setInputStream(inputStream);

var o="foo";
a.readBytes(o, 2000);
dump(o);

inputStream.close();

Cependant, dump m'envoi "foo" et non pas une partie du fichier binaire.

Quelqu'un sait comment faire ?

merci d'avance.

# Re: Lecture d'un fichier binaire

Envoyé par : Utilisateur anonyme

Date : 10/09/2004 15:16

J'ai eu le même problêmme, voici ma routine (qui fonctionne) ...

function read(loadfile) {
  try{ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); } catch(e) { alert("Permission to read file was denied."); }

  var files = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
  files.initWithPath( loadfile );
  if ( files.exists() == false ) { alert("File does not exist"); }

  var is = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance( Components.interfaces.nsIFileInputStream );
  is.init( files, 0x01, 00004, null);

  var sis = Components.classes["@mozilla.org/binaryinputstream;1"].createInstance( Components.interfaces.nsIBinaryInputStream );
  sis.setInputStream( is );
  output = sis.readBytes ( sis.available() );
  //alert(output.length);

  return output;
}

Il doit bien existé un moyen de l'optimiser :) de plus elle n'est peut étre pas 'propre'

# Re: Lecture d'un fichier binaire

Envoyé par : harobed

Date : 10/09/2004 15:26

Merci pour ton aide.

Mais entre temps, j'ai choisi d'effectuer mes développements en java. La documentation est plus complète, et je suis plus performent sur ce framework.

Mais je garde un oeil sur le framework mozilla.

# Re: Lecture d'un fichier binaire

Envoyé par : scramatte

Date : 28/09/2005 20:24

Bonjour à tous

J'ai testé ça fonctionne bien sauf que sur les gros fichiers ça plante. j'obtient une exception pas très explicite sur la methode readbytes...

Quelqu'un a un idée ?

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.