Pergunta

I am trying to read a locally stored text file in windows xp using xul program below:

function read_text_file(file_path)
{
  var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); 
  file.initWithPath(file_path); 
  var data = "";   
  var fstream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);   
  var cstream = Components.classes["@mozilla.org/intl/converter-input-stream;1"].createInstance(Components.interfaces.nsIConverterInputStream);   
  fstream.init(file, -1, 0, 0);
  cstream.init(fstream, "UTF-8", 0, 0); // you can use another encoding here if you wish   

  let (str = {}) {   
  let read = 0;   
  do {
      read = cstream.readString(0xffffffff, str); // read as much as we can and put it in str.value   
      data += str.value;   
     } 
  while (read != 0);
  }
  cstream.close(); // this closes fstream
  return data;
}

But getting Error in read = cstream.readString(0xffffffff, str);:

Error: NS_ERROR_ILLEGAL_INPUT: Component returned failure code: 0x8050000e (NS_ERROR_ILLEGAL_INPUT) [nsIConverterInputStream.readString]
Source File: chrome://quicknote/content/overlay.js
Line: 168

here I found some description here, but it didn't help. enter image description here

Foi útil?

Solução

The most likely reason for this is that the data in that file is not in fact encoded in UTF-8, so trying to decode as UTF-8 ends up throwing.

Outras dicas

here is the answer: Reading textual data

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top