Dataview позволяет вам проверять содержимое ArrayBuffer. Нечто подобное может сработать:
let arr = [];
let view = new DataView(arrayBuffer);
for (let i = 0; i
, правильный ответ - это, зависит. Если Вы пишете аудио/видеоданные, например, если Вы лом это в человекочитаемый формат, это не будет очень читаемо! И документы слова являются классическим примером, где людям жаль, что они не были человекочитаемыми, настолько более гибкими, и путем перемещения в MS XML идут тем путем.
Намного более важный, чем двоичный файл или текст стандарт или не стандарт. Если Вы используете стандартный формат, то возможности - Вы, и следующий парень не должен будет писать синтаксический анализатор, и это - победа для всех.
После этого некоторые самоуверенные причины, почему Вы могли бы хотеть выбрать один по другому, если необходимо записать собственный формат (и синтаксический анализатор).
В конце дня, я не думаю, что любой может действительно требовать преимущества здесь.
Является Вами уверенный, что Вы действительно хотите файл? Вы рассмотрели базу данных? :-)
Кредиты
Много этого ответа объединяет вместе материал, который другие люди записали в других ответах (Вы видите их там). И особенно большое спасибо Jon Skeet для его комментариев (и здесь и офлайн) для предложения путями это могло быть улучшено.
При чтении диссертации Fielding о REST мне действительно понравилось понятие" Архитектурные Свойства "; тот, что sticked была "Видимость". Это - то, о чем мы говорим здесь: способность 'видеть' данные. Огромные преимущества при отладке системы.
Один аспект, что я нахожу пропавших без вести в других ответах: семантика осуществления .
С момента Вы идете для человекочитаемого, Вы позволяете глупому пользователю блокнота создавать данные, которые будут питаться в систему. Никакой способ гарантировать эти данные не имеет смысл. Никакой способ гарантировать систему не ответит разумным способом.
Так в случае Вам не нужно к блокноту - осматривают Ваши данные, и Вы хотите осуществить допустимые данные (например, использование API), а не сначала проверка его, Вы лучше избегаете человекочитаемых данных. Если debuggeability является проблемой (это чаще всего), контроль данных может быть сделан при помощи API, также.
Человеческий формат является simplier к парсингу и отладке, если у Вас есть проблема с полем (пример: поле содержит число, где спецификация говорит, что это поле должно быть строкой), также человеческий формат является closier к домену проблемы.
я предпочитаю двоичный формат с большим количеством данных, И я уверен, что у меня есть программное обеспечение для парсинга его :)
, Почему я должен использовать человекочитаемый формат файла в предпочтении к двоичной единице?
Зависит от содержания и контекста, т.е. куда данные прибывают из и идут. Если данные обычно непосредственно пишутся человеком, храня его в формате, которым можно управлять через текстовый редактор, хорошая идея. Например, исходный код программы будет обычно храниться как человекочитаемый с серьезным основанием. Однако, если мы заархивируем его или совместно используем его с помощью системы управления версиями, то наша стратегия хранения изменится.
Единственное время, когда я использую двоичный поток для файлов, которые не являются архивами, - когда я хочу скрыть вещи от случайного наблюдателя. Например, если я делаю временные файлы, что только , которые должно редактировать мое приложение, я буду использовать двоичный файл.
не попытка запутать, скорее ее просто отговаривание пользователя редактировать файл вручную (который мог повредить приложение).
Один экземпляр, где это было бы хорошей идеей, хранит / сохраняющий рабочие данные о некоторой игре.. т.е. сохранить Вашу игру и продолжиться позже. Другие сценарии описали бы промежуточные файлы, но это обычно двоичное / байт, скомпилированный так или иначе.
Часто файлы становятся частью Вашего интерфейса пользователя таким образом, они должны быть человеческой товарищеской встречей (не только программист)
Я предполагаю не хороший в большинстве ситуаций, вероятно. Я думаю, главная причина для этих форматов, таких как JSON и XML из-за веб-разработки и общего использования по сети, где необходимо смочь обработать данные на стороне пользователя и Вы наклоняете обязательно двоичный файл чтения. Хорошим примером тяжелого случая для использования человекочитаемого формата была бы любая вещь, не текстовая, такая как изображения, видео, аудио. Я заметил использование недвоичных форматов, используемых в веб-разработке, где это не имеет смысла, я чувствую себя виновным!
, Почему я должен использовать человекочитаемый формат файла в предпочтении к двоичной единице? Существует ли когда-нибудь ситуация, когда это не имеет место?
Да, сжатые объемы (zip, jpeg, mp3, и т.д.) были бы субоптимальными, если бы они были человекочитаемы.
Uhm†¦, потому что человекочитаемые форматы файлов могут быть считаны людьми? Походит на довольно серьезное основание мне.
(Ну, для конфигурационных файлов it’s неизбежный, что они читаются (и редактируются!) людьми. Файлы для персистентного какого-то устройства хранения данных или другого don’t действительно должны быть считаны или отредактированы людьми.)
Как adjuct к этому, там отличаются уровни человеческой удобочитаемости, и все улучшены при помощи хорошего редактора или средства просмотра с окраской кода, сворачиванием или навигацией.
, Например,
Совместимость является стандартным аргументом, т.е. человекочитаемая форма легче для разработчиков разрозненных систем иметь дело с, поэтому дает некоторое преимущество.
Лично я думаю, что это не верно, и производительность benfits двоичных файлов должна разбить тот аргумент, особенно при публикации протокола. Однако повсеместность XML/HTTP основывала платформы для средств взаимодействий машины, которые легче принять.
XML является злоупотребившим путем.
Поскольку Вы - человек, и рано или поздно Вы (или один из Ваших клиентов) сможете считать данные.
Мы только используем двоичный формат, если скорость является проблемой. И даже затем отладка неприятна, таким образом, мы добавили человекочитаемый эквивалент.
Самое главное, их функция может быть decuded от содержания (хорошо главным образом)
Профессионалы для двоичного файла:
Профессионалы для человекочитаемого:
, я должен был иметь дело с обоими типами. Если Вы отправляете данные, и Вы хотите сохранить их, небольшой двоичный файл хорош. Если Вы ожидаете, что люди будут читать, это затем человекочитаемый хорошо.
Человекочитаемый обычно несколько сам документирующий также. И с двоичным файлом это - ягода, легкая сделать ошибки - и трудно определить их.
Они открывают возможность, которая будет создаваться/редактироваться с инструментами кроме исходных. Новые и лучшие инструменты могут быть разработаны другими, интеграция в приложения сторонних производителей становится возможной. Думайте о двоичных файлах iCal, например - формат имел бы успех?
, Кроме который: Человекочитаемые файлы улучшают способность отладить или, для опытного пользователя, по крайней мере, найти причину ошибкой.
Существует что-то позвонившее Искусство Программирования .
Unix, я не скажу, что это хорошо или плохо, но это довольно известно. Это имеет целая глава под названием Смысловая структура , в котором автор утверждает, что человекочитаемый формат файла является важной частью Unix способ запрограммировать.
Основная причина состоит в том, что, если кто-то должен считать данные, говорят, 30 лет с этого времени, человекочитаемый формат может быть вычислен. Двоичный файл является намного более трудным.
, Если Ваш имеют большие наборы данных, которые являются двоичными по своей природе (например, изображения), они, очевидно, не могут быть сохранены ни в каком другом, чем двоичная форма. Но даже затем, метаданные могли (и если!) быть человекочитаемым.
Один важный момент: Вы пишете синтаксический анализатор однажды, но много раз читаете вывод. Такой смещает баланс в пользу HRF.
Управление версиями легче с текстовыми форматами, потому что изменения могут легко быть просмотрены и объединены.
Особенно MSWord дает нам горе в этом отношении.
Это полностью зависит от ситуации.
Преимущества человекочитаемого формата:
Вероятные преимущества двоичного формата:
, не забывают, что можно всегда реализовывать двоичный формат, но производить инструменты для преобразования в человекочитаемый формат также. Это - то, что делает Буферная платформа Протокола - это - на самом деле довольно редкий IME для парсинга текстовой версии буфера протокола, но действительно удобно смочь выписать его как текст.
РЕДАКТИРОВАНИЕ: На всякий случай это заканчивает тем, что было принятым ответом, необходимо также принять во внимание мнение, высказанное starblue: Человекочитаемые формы очень лучше для diffing. Я подозреваю, что было бы выполнимо разработать двоичный формат, который подходит для diffing (и где человекочитаемая разность могла быть сгенерирована), но программная поддержка от существующих различных инструментов будет лучше для текста.
Просто быстрая иллюстрация, где человекочитаемый формат документа может быть лучшим выбором:
документы использовали для развертывания приложения в производстве
, Мы раньше имели наш информация о версии в формате слова, но тот документ информации о версии должен был быть открыт на различной среде (Linux, Солярис) в plateform подготовки производства и производства.
Это также должно было быть проанализировано для извлечения различных данных.
В конце, мы переключились на основанный на Wiki синтаксис, все еще отображенный приятно в HTML через Wiki, но все еще использовали в качестве простого текстового файла в другой ситуации.
Никто не сказал, таким образом, я буду: человеческая удобочитаемость не является действительно свойством формата файла (все файлы являются двоичными, в конце концов), а скорее формата файла и комбинации приложения для средства просмотра.
Так называемые человекочитаемые форматы - все на основе вершины дополнительного уровня абстракции одной из кодировки существующего текста. И программы средства просмотра (часто также служащий редактором), которые способны к рендерингу этой кодировки в форме, читаемой людьми, очень распространены.
Текст, кодирующий стандарты, является широко распространенным и довольно сформировавшимся, что означает, что они вряд ли разовьются очень в обозримом будущем.
Обычно сверх текстового слоя кодирования формата мы находим слой синтаксиса, который является довольно интуитивным данным знанием целевого пользователя и культурным наследием.
Следовательно преимущества "человекочитаемых" форматов:
Повсеместность подходящих средств просмотра и редакторов.
Отсутствие чувства времени (учитывая, что местные представления не изменятся очень).
Easiness-learn, считайте и измените.
Уверенность в дополнительном уровне абстракции делает закодированные файлы текста:
Голодное пространство.
Медленнее обработать.
"Двоичные" файлы не обращаются к тексту, кодирующему уровень абстракции основой (или общий знаменатель), но они могли бы или не могли бы использовать своего рода дополнительная абстракция, более подходящая для их цели и следовательно, они могут быть намного лучше оптимизированы для определенной задачи, под рукой означающей:
Быстрее обработка.
Меньшее место.
С другой стороны:
Средства просмотра и редакторы специфичны для конкретного двоичного формата и делают совместимость тяжелее.
Средства просмотра для любого данного формата являются менее широким распространением, потому что они более специализированы.
Форматы могли бы значительно развиться или выходить из использования со временем: их основное преимущество в подхождении очень хорошо для конкретной задачи и как требования задачи или задачи развивается, формат - также.
Take на минутку и подумайте о приложении, ДРУГОМ, чем веб-разработка.
Предположение, что: А) Имеет значение "очевидно", в текстовом формате ложно. Такие вещи, как системы управления для сталелитейного завода или производственного предприятия, обычно не имеют никакого преимущества в том, что они читаются человеком. Программное обеспечение для этих типов сред обычно имеет процедуры для отображения данных в графически значимой форме.
B) Выводить их в текстовом виде проще. Ненужные преобразования, которые на самом деле требуют большего количества кода, делают систему МЕНЬШЕ надежной. Дело в том, что если вы НЕ используете язык, который обрабатывает все переменные как строки, тогда читаемый человеком текст является дополнительным преобразованием. IE Extra code означает больше кода для проверки, тестирования и больше возможностей для внесения ошибок в приложение.
C) Вы все равно должны его проанализировать. Я работал во многих случаях для систем DSP (IE НЕТ, чтобы начать с интерфейса). Данные передаются из системы в виде пакетов одинакового размера. Регистрация данных для анализа и последующей обработки - это просто указание на начало буфера и запись кратного размера блока в систему регистратора данных. Это позволяет мне анализировать данные «нетронутыми», поскольку система клиента увидит их, где, опять же, преобразование их в другой формат может привести к появлению ошибок. Более того, если вы сохраните только «преобразованные данные», вы можете потерять информацию в переводе, которая может помочь вам диагностировать проблему.
D) Текст - это естественный формат данных. Ни одно оборудование, которое я когда-либо видел, не использует интерфейс "ТЕКСТ". (Моя первая работа после колледжа заключалась в написании драйвера устройства для камеры с линейным сканированием.) Система, построенная на ней, МОЖЕТ, но для каждого «ПК».
Для веб-страниц, где информация имеет "