Программно редактировать файл .webarchive - PullRequest
0 голосов
/ 27 октября 2011

Я создаю приложение AIR с использованием Actionscript и хочу программно вставить фрагмент текста в файл .webarchive.Проблема в том, что каждый раз, когда я вставляю текст, файл как-то повреждается.Код, который я использую, выглядит следующим образом:

var stream:FileStream = new FileStream();                       
stream.open(file, FileMode.READ);   
var body:ByteArray = new ByteArray();                       
stream.readBytes(body, file.size);                      
var result:Array = pattern.exec(body.toString());                   
var new_body:String;                        
new_body = body.toString().replace(pattern, "replacing text here!</body>"); 
stream.close();                     
stream.open(file, FileMode.WRITE);                      
stream.writeUTFBytes(new_body);                     
stream.close();

Я предполагаю, что проблема связана с кодировкой файла .webarchive.У кого-нибудь есть идеи как это исправить?Заранее спасибо!

1 Ответ

0 голосов
/ 30 октября 2011

При чтении текстовой информации из файлов всегда следует использовать stream.readUTFBytes() или stream.readUTF().Я предполагаю, что некоторые реальные проблемы кодирования возникают, когда вы конвертируете байты в строку в вашем коде.Правильный код будет:

var stream:FileStream = new FileStream();                       
stream.open(file, FileMode.READ);   
var body:String = stream.readUTFBytes(stream.bytesAvailable);   
stream.close();               
var new_body:String = body.replace(pattern, "replacing text here!</body>");  
stream.open(file, FileMode.WRITE);                      
stream.writeUTFBytes(new_body);                     
stream.close();
...