Добрый день
Вопрос глупый конечно: "Зачем нужен бинарный файл"?. К примеру есть файл .bin а есть файл .txt
если открыть .bin в блокноте - то там абракодабра. Вообще вопрос в целом почему все нельзя в текстовом формате сохранить, туже абракодабру? Правильно ли я понимаю что бинарные файлы и бинарные потоки используются для того чтоб больше информации закодировать с помощью определенной последовательности байтов, которая и выглядит как аброкадабра если смотреть в простом блокноте. А просто в текстовом документе это тоже можно прописать как-то наглядно в виде обычного текста и вменяемых символов, но это будет занимать в разы больше места/памяти.
PHP
Глупый вопрос: зачем нужен бинарный файл и бинарный поток?)
Затем, что все данные в компьютере - бинарные. И текст, который ты видишь, открыв файл в текстовом редакторе - это лишь интерпретация бинарных данных бинарной программой.
Компьютер не знает, что такое текст. Всё, что умеет компьютер - это манипулировать числами, хранящимися в бинарном виде.
Бинарные данные - не только компактнее, но и эффективнее. Если хранить число в виде текста, придётся этот текст каждый раз преобразовывать в бинарную запись числа - чтобы компьютер смог с этим числом работать, а потом из бинарной записи преобразовывать обратно в текст - при записи в файл. Это нормально работает для файла конфигурации - который читается один раз при запуске программы, но крайне неэффективно, если файл постоянно читают / пишут в процессе работы программы.
Компьютер не знает, что такое текст. Всё, что умеет компьютер - это манипулировать числами, хранящимися в бинарном виде.
Бинарные данные - не только компактнее, но и эффективнее. Если хранить число в виде текста, придётся этот текст каждый раз преобразовывать в бинарную запись числа - чтобы компьютер смог с этим числом работать, а потом из бинарной записи преобразовывать обратно в текст - при записи в файл. Это нормально работает для файла конфигурации - который читается один раз при запуске программы, но крайне неэффективно, если файл постоянно читают / пишут в процессе работы программы.
Эдуард Ким
текстовый файл - это просто частный случай, бинарного файла, бинарных данных. Которые нам видны только потому что мы с компьютером заранее договорились что этот бинарный файл нужно открыть и показать в кодировке ASCII к примеру? так?
Ну, в принципе, Вы правы. Бинарные данные пытаются кодировать символами ASCII, когда отправляют файлы по электронной почте. Это кодировка называется Base64. В принципе, бинарными можно назвать вообще какие угодно файлы. Однако, в быту конкретное расширение .bin закрепилось за прошивками BIOS и микроконтроллеров.
Бинарый файл хранит какие-либо бинарные данные. Любой файл, по факту, является бинарным. Как интерпретировать данные решает тот, кто использует файл.
Когда ты открываешь бинарный файл в блокноте, то пытаешься интерпретировать его как текстовый файл. Соответствие символа и байта(последовательности байт) определяется кодировкой. Напр. в ASCII символу a соответствует байт 0x61. Т.е. когда блокнот видит байт 0x61 то рисует тебе символ a.
Допустим тебе нужно сохранять числовые значения. Можно записывать их в текстовый файл. Число 230189844 в кодировке ASCII будет представлено девятью байтами плюс символ новой строки либо какой-либо другой разделитель. Итого 10 байт. Если же записывать числа как int32 просто в бинарной форме в файл, то каждое число будет занимать ровно 4 байта и нет необходимости использовать разделители.
Текстовые файлы имеют преимущество - человек может легко их просматривать и изменять.
Когда ты открываешь бинарный файл в блокноте, то пытаешься интерпретировать его как текстовый файл. Соответствие символа и байта(последовательности байт) определяется кодировкой. Напр. в ASCII символу a соответствует байт 0x61. Т.е. когда блокнот видит байт 0x61 то рисует тебе символ a.
Допустим тебе нужно сохранять числовые значения. Можно записывать их в текстовый файл. Число 230189844 в кодировке ASCII будет представлено девятью байтами плюс символ новой строки либо какой-либо другой разделитель. Итого 10 байт. Если же записывать числа как int32 просто в бинарной форме в файл, то каждое число будет занимать ровно 4 байта и нет необходимости использовать разделители.
Текстовые файлы имеют преимущество - человек может легко их просматривать и изменять.
Займись программированием. Авось в голове прояснится
Похожие вопросы
- Как следует работать с текстовыми файлами?
- Как правильно деплоить сайт и в частности js/css файлы?
- HTTP://, создание новых файлов на сервере
- Загрузка файлов на сервер
- Несколько AJAX запросов на один PHP файл.
- MVC, .php / .tpl ...как должен выглядеть файл с расширением tpl?
- А для чего создаётся огромное количество файлов php? Это для удобства ?
- Объясните что за файл php.ini
- Как правильно выбрать хостинг для использования mail() с прикрепленными файлами большого размера (100мб в среднем)?
- Как заменить html код с помощью php файла.