чтение файлов .dat с помощью javascript

Я пытаюсь загрузить файл example.dat с помощью javascript. Я думал, что правильный путь использует fileReader, но, похоже, он не может обрабатывать этот формат.

Цель: импортировать этот файл .dat на мою сторону, чтобы загрузить список слов в двоичном формате, а затем после импорта перевести их обратно в слова в качестве конечного продукта. Этот метод используется для экономии места, поскольку я создаю игру, в которой пространство ограничено.

Я заглянул в DataView, но не могу решить, как импортировать файл .dat и прочитать полученный импорт.

Заранее благодарю.


person S. Orrichio    schedule 22.08.2014    source источник
comment
Я бы использовал AJAX для чтения .dat файлов. Посмотрите здесь: stackoverflow.com/ questions/13623784/ обратите внимание, что не имеет значения, .txt это или .dat.   -  person Spencer Wieczorek    schedule 22.08.2014
comment
Я только что использовал этот метод, и когда я использую файлы .dat, он, похоже, не загружается. Может быть, dataType должен быть другим?   -  person S. Orrichio    schedule 22.08.2014
comment
FileReader может работать с любым форматом. для ajax просто установите xhr.responseType=blob; а затем вы можете передать ответ FileReader, как если бы у вас был File()   -  person dandavis    schedule 23.08.2014
comment
@dandavis, я использовал шаблон, который Спенсер предложил мне посмотреть. Он отлично импортировал файлы .txt, но не .dat ... Итак, у меня есть этот двоичный файл, и я хочу прочитать его и преобразовать обратно в слова, чтобы сэкономить место. Я чувствую, что он неправильно интерпретирует данные, этот двоичный файл имеет другие символы, кроме 1 и 0...   -  person S. Orrichio    schedule 23.08.2014
comment
получить блоб из ввода или через ajax не проблема, важно то, что вы делаете с блобом, как только вы его получите. нет стандартного файла dat, поэтому я не могу сказать вам, как превратить эти биты в строки, но чтение в виде текста явно не работает. возможно, вам нужен UInt8Array или преобразование значений char в символы Unicode.   -  person dandavis    schedule 23.08.2014
comment
А, я вижу, ок. Я постараюсь манипулировать этими данными в нужной мне форме. Спасибо за предложения. Я посмотрю на это.   -  person S. Orrichio    schedule 23.08.2014
comment
@user5465 user5465 Это связано с тем, что AJAX может просто читать текст, а не интерпретировать .dat с двоичной информацией. Вам придется функционально интерпретировать двоичную информацию. Посмотрите здесь: stackoverflow.com/questions/327685/ Извините, я должен был упомянуть об этом в моем последнем комментарии.   -  person Spencer Wieczorek    schedule 23.08.2014


Ответы (1)


У меня такая же проблема, как и у вас, и я использую этот код для чтения необходимых данных из файла .dat:

    $("#importFileBtn").change(function (event) {
    $.each(event.target.files, function (index, file) {
        var reader = new FileReader();
        reader.onload = function (e) {
            // e.target.result should contain the text
            log(e.target.result);
        };
        reader.readAsText(file);
    });
});
person mitramir    schedule 10.09.2015