Работа с бинарными файлами, двоичные данные и кодировка base64

Резюме файла BIN

Согласно нашим записям, существуют двадцать тип(ы) файлов, связанных с расширением BIN, самый популярный из которых отформатирован в качестве Binary Disk Image File. Самое распространенное связанное приложение — IsoBuster, выпущенное Smart Projects. Кроме того, двадцать различные программы позволяют вам просматривать эти файлы.

В большинстве случаев эти файлы относятся к Disk Image Files, но они также могут относиться к Executable Files или Game Files.

Файлы BIN находятся на платформах мобильных устройств и настольных компьютеров, и их можно открыть в Windows, Mac и Android.

Рейтинг популярности файлов BIN составляет «Низкий», что означает, что данные файлы встречаются редко.

Вариант 2: BIN, как файл образа

Каждый из нас когда-либо запускал на компьютере диски с фильмами, компьютерными играми, музыкальными альбомами и так далее. Если снять точную копию диска и сохранить ее на компьютере, то мы получим файл образа.

Сегодня существует достаточно широкий выбор файлов образов, среди которых явным лидером является формат ISO, который поддерживается каждой программой, где предусмотрена работа с образами дисков.

Менее популярным является файл формата BIN, точно так же являющийся файлом образа диска. К счастью, это совершенно не отразилось на списке поддерживаемых программ, потому от вас потребуется выбрать лишь приглянувшуюся.

UltraISO

Мощный и, пожалуй, наиболее популярный многофункциональный комбайн для работы с образами, информацией и накопителями. Программа позволяет как создавать образы дисков, так и изменять. Вы легко можете снять с любого диска образ или же записать существующий на чистую болванку.

Если случись так, что на вашем компьютере отсутствует CD-ROM, программа позволит сформировать виртуальный привод, с помощью которого вы и сможете запустить на компьютере файл формата BIN. Примечательно, несмотря на то, что программа является платной, даже после истечения пробного периода ее функциональность никоим образом не блокируется, а значит, вы сможете и дальше полноценно пользоваться программой.

Alcohol 120%

Мощный инструмент для работы с образами. Данная программа обеспечит полноценную работу с файлами образов. К сожалению, если некоторое время назад еще существовала облегченная версия программы, доступная для загрузки и использования полностью бесплатно, то недавно разработчики ее решили убрать, оставив лишь полноценный Alcohol 120%. К слову, программа имеет пробный период, а значит, вы сможете на протяжении месяца пользоваться ею абсолютно бесплатно.

Daemon Tools Lite

Данная версия – облегченный вариант популярной программы Daemon Tools. Если вам потребовалось лишь запустить на компьютере файл BIN, данный инструмент позволит легко создать виртуальный привод и выполнить запуск имеющегося образа. Эта версия программы поддерживает русский язык, а также распространяется бесплатно.

Программы для открытия файлов расширением BIN

Чтобы выяснить, является ли БИН образом CD/DVD диска, обратите внимание на его размер. Если объём соответствует размеру оптического носителя — скорее всего, ваш файл представляет собой образ. . После того, как будете знать такую информацию, можете попробовать одну из универсальных программ для монтирования CD/DVD-образов

После того, как будете знать такую информацию, можете попробовать одну из универсальных программ для монтирования CD/DVD-образов.

UltraISO

Очень функциональная утилита, отлично справляется с распаковкой и записью разных данных. Умеет создавать установочные флешки и DVD-диски.

  1. Запустите Ultra ISO;
  2. В левой верхней стороне интерфейса нажимаем по вкладке «Файл» и выбираем «Открыть…»;
  3. В проводнике укажите расположение требуемого объекта;
  4. В правой части экрана появится содержимое вашего БИН-файла;
  5. Можете посмотреть и извлечь информацию либо записать её на любой накопитель.

Daemon Tools

Популярный софт с интуитивно понятным интерфейсом. Поможет узнать подробные сведения о содержимом файла и отредактировать его. Поддерживает разные версии Microsoft Windows, Mac OS и Linux.

  1. В процессе установки софта, не забудьте поставить галочку напротив BIN-формата (в поддерживаемых компонентах, как показано на скриншоте);
  2. Загрузите приложение;
  3. Кликните по пункту «Образы» вверху слева;
  4. В правой части экрана нажмите по значку в виде плюсика;
  5. Выбираем нужный БИН-файл в окошке файлового менеджера;
  6. Теперь можем просматривать материалы и выбирать подходящую опцию редактирования, конвертирования и т.д.

Nero

Ещё одна хорошая программка. Запускается автоматически вместе со стартом OS. Отличается высокой скоростью работы, предоставляет много полезных функций и настроек.

  1. Запускаем Неро;
  2. Жмём по кнопке «Файл», расположенной в верхней части меню;
  3. Указываем необходимый объект и открываем его;
  4. Дальше можем использовать одну из предложенных опций.

Стоит отметить ещё несколько популярных аналогов рассмотренному нами софту: Alcohol 120%, PowerISO, The Unarchiver for Apple MacOS, MagicISO, Hex to Bin Utility, Roxio Creator.

Бинарная сериализация. BinaryFormatter

Последнее обновление: 22.09.2019

В прошлых темах было рассмотрено как сохранять и считывать информацию с текстовых и бинарных файлов с помощью классов из пространства
System.IO. Но .NET также предоставляет еще один механизм для удобной работы с бинарными файлами и их данными — бинарную сериализацию.
Сериализация представляет процесс преобразования какого-либо объекта в поток байтов.
После преобразования мы можем этот поток байтов или записать на диск или сохранить его временно в памяти. А при необходимости можно выполнить
обратный процесс — десериализацию, то есть получить из потока байтов ранее сохраненный объект.

Атрибут Serializable

Чтобы объект определенного класса можно было сериализовать, надо этот класс пометить атрибутом Serializable:


class Person
{
    public string Name { get; set; }
    public int Year { get; set; }

    public Person(string name, int year)
    {
        Name = name;
        Year = year;
    }
}

При отстутствии данного атрибута объект Person не сможет быть сериализован, и при попытке сериализации будет выброшено исключение
.

Сериализация применяется к свойствам и полям класса. Если мы не хотим, чтобы какое-то поле класса сериализовалось, то мы его помечаем атрибутом NonSerialized:


class Person
{
    public string Name { get; set; }
    public int Year { get; set; }
	
	
    public string accNumber;
	
    public Person(string name, int year, string acc)
    {
        Name = name;
        Year = year;
		accNumber = acc;
    }
}

При наследовании подобного класса, следует учитывать, что атрибут Serializable автоматически не наследуется. И если мы хотим, чтобы производный
класс также мог бы быть сериализован, то опять же мы применяем к нему атрибут:


class Worker : Person

Для бинарной сериализации применяется класс BinaryFormatter:

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

namespace Serialization
{
    
    class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }

        public Person(string name, int age)
        {
            Name = name;
            Age = age;
        }
    }
	
    class Program
    {
        static void Main(string[] args)
        {
            // объект для сериализации
            Person person = new Person("Tom", 29);
            Console.WriteLine("Объект создан");

            // создаем объект BinaryFormatter
            BinaryFormatter formatter = new BinaryFormatter();
            // получаем поток, куда будем записывать сериализованный объект
            using (FileStream fs = new FileStream("people.dat", FileMode.OpenOrCreate))
            {
                formatter.Serialize(fs, person);

                Console.WriteLine("Объект сериализован");
            }

            // десериализация из файла people.dat
            using (FileStream fs = new FileStream("people.dat", FileMode.OpenOrCreate))
            {
                Person newPerson = (Person)formatter.Deserialize(fs);

                Console.WriteLine("Объект десериализован");
                Console.WriteLine($"Имя: {newPerson.Name} --- Возраст: {newPerson.Age}");
            }

            Console.ReadLine();
        }
    }
}

Так как класс BinaryFormatter определен в пространстве имен , то в самом
начале подключаем его.

У нас есть простенький класс Person, который объявлен с атрибутом Serializable. Благодаря этому его объекты будут доступны для сериализации.

Далее создаем объект BinaryFormatter:

Затем последовательно выполняем сериализацию и десериализацию. Для обоих операций нам нужен поток, в который либо сохранять, либо из которого
считывать данные. Данный поток представляет объект FileStream, который записывает нужный нам объект Person в файл people.dat.

Сериализация одним методом добавляет все данные об объекте Person в файл .

При десериализации нам нужно еще преобразовать объект, возвращаемый функцией Deserialize, к типу Person:
.

Как вы видите, сериализация значительно упрощает процесс сохранения объектов в бинарную форму по сравнению, например, с использованием
связки классов BinaryWriter/BinaryReader.

Хотя мы взяли лишь один объект Person, но равным образом мы можем использовать и массив подобных объектов, список или иную коллекцию, к
которой применяется атрибут Serializable. Посмотрим на примере массива:

Person person1 = new Person("Tom", 29);
Person person2 = new Person("Bill", 25);
// массив для сериализации
Person[] people = new Person[] { person1, person2 };

BinaryFormatter formatter = new BinaryFormatter();

using (FileStream fs = new FileStream("people.dat", FileMode.OpenOrCreate))
{
	// сериализуем весь массив people
    formatter.Serialize(fs, people);

    Console.WriteLine("Объект сериализован");
}

// десериализация
using (FileStream fs = new FileStream("people.dat", FileMode.OpenOrCreate))
{
    Person[] deserilizePeople = (Person[])formatter.Deserialize(fs);

    foreach (Person p in deserilizePeople)
    {
        Console.WriteLine($"Имя: {p.Name} --- Возраст: {p.Age}");
    }
}

НазадВперед

Как открыть bin файл на Windows 10

Операционная система Windows 10 – одна из самых популярных, но у многих пользователей возникают сложности в работе, так как последняя версия обладает некоторыми особенностями, которых не было в более ранних вариантах.

Именно поэтому работа с бин форматом также имеет некоторые особенности, которые обязательно стоит принять во внимание

Способы

Проще всего использовать приложение Блокнот. Но у данного способа есть один существенный недостаток: вы получите доступ к информации, но увидите только набор символов (двоичный код), который не принесет вам никакой пользы.

Если вы действительно хотите узнать, что хранится в документе, стоит воспользоваться одним из более действенных способов:

  1. Проверьте размер. Если он соответствует CD или DVD диску, значит, вы имеет дело с образом, и для открытия можно использовать одну из популярных утилит: Daemon Tools, Ultra ISO или Alcohol 120% (Рисунок 2).

  2. После этого достаточно выбрать функцию быстрого монтирования, кликнуть на файле и смонтировать образ.

  3. Небольшие файлы бин, как правило, содержат данные для прошивки или драйвера. Открыть его еще проще: нужно найти инструкцию к устройству, для которого предназначены данные. Из нее вы получите всю необходимую информацию для работы.


Рисунок 2. Окно конвертации файла в нужный формат в программе UltraISO

Иногда подобный формат используется в качестве установочного файла для софта или игр.

Инструкция

Как уже говорилось выше, для открытия понадобится специальный софт – утилиты, предназначенные для создания, монтирования и преобразования образов.

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

Альтернативное создание начального образа в УРБД

Статья описывает альтернативный способ создания начального образа для подчиненной базы данных.
СоздатьНачальныйОбраз(, )

Создать нужные узлы в плане обмена. На данном этапе мы должны в основной базе данных создать все
нужные узлы, которые будут участвовать в обмене. Узлу присваивается уникальный код и
наименование.
Создать копию информационной базы. Если информационная база в файловом варианте, то копия
создается простым копирование 1Cv8.1CD. Если вариант ИБ клиент-серверный, то сначала нужно выгрузить
базу в режиме конфигуратора в dt-файл (1Cv8.dt), а потом загрузить ее в новую базу
Подготовить вновь созданную базу к использованию, как подчиненную:
Удалим все не нужные узлы. Для это нужно использовать непосредственное удаление элементов из
планов обмена.
Удалить изменения для узлов обмена

Программно данную процедуру для всех узлов обмена можно
выполнить код:

ПланыОбмена.УдалитьРегистрациюИзменений(Узел);

Внимание! когда удаляем регистрацию изменений — следим чтобы в качестве параметра не передавался
ЭтотУзел. Вызовет ошибку.

Очистить номера сообщений для всех узлов в планах обмена

Данная процедура нужно в случае если
узлы для плана обмена не создавались «с нуля» и для них уже выгружались/загружались данные.

ОбъектУзел = Узел.ПолучитьОбъект();
ОбъектУзел.НомерОтправленного = ;
ОбъектУзел.НомерПринятого = ;
ОбъектУзел.Записать();

Поменять местами код и наименование между главным узлом и подчиненным. Т.е. в нашей (копии
главной) базе сейчас текущим узлом является главный узел, это потому что база создавалась
копированием. Нужно код и наименование подчиненного узла перенести в текущий узел, а код и
наименование главного узла в другой, не текущий. Например в планах обмена два узла: «Главный» и
«Подчиненный». «Главный» имеет признак текущего для данной ИБ узла. Переносим код из узла «Главный»
в узел «Подчиненный» и наоборот из «Подчиненный» в «Главный».

Если конфигарация базы-оригинала была подключена к хранилищу, то необходимо зайти в конфигуратор
и отключиться от него. Обычно для этого достаточно просто открыть конфигурацию и в диалоге ввода
пути и пароля для хранилища ничего не вводить, просто его закрыв. После выполнения этой процедуры
обязательно закрыть конфигуратор. Следующий шаг необходимо выполнять при закрытом конфигураторе.

Установить главный узел. На данном этапе устанавливаем главным узел в который мы перенесли код и
наименование из бывшего главного узла:

ПланыОбмена.УстановитьГлавныйУзел(Узел);

Внимание! при этой операции конфигуратор должен быть закрытым, потому что на конфигурацию
накладывается «замок» — возможность изменения только в центре
При этом возле главного узла появиться красная пиктограмма.

Осуществить тестовый обмен данными между подчиненным и главным узлом. Установить, настроить
дополнительные реквизиты в главной и подчиненной базе. На этом этапе базы уже готовы для
использования

Полезные ссылки в книге знаний:Книга знаний: УРБД на v8 за четыре шага.Книга знаний: v8: Выборочная миграция данных в УРБД

Программы для работы с bin: топ-5 программ

Мы рассмотрим 5 лучших программ, известных надежностью, удобным интерфейсов и приличным функционалом. Вы узнаете как отрыть образ диска BIN бесплатными утилитами.

Alcohol 120%

Старый известный софт для манипуляций с образами дисков. Отличается значительным количеством функций. Программа не просто конвертирует формат БИН, но и создает из них виртуальный диск. Функция, необходимая для использования игр и софта, распространяющихся только на физических носителях: CD/DVD дисках. Чтобы открыть образ в Alcohol 120% мы перемещаем файл в рабочую область и монтируем ее на виртуальный диск.

Программа Alcohol 120%

UltraISO

Хорошая программа для открытия bin файлов. Сталкивался с ней практически любой пользователь. Может преобразовывать файлы в другие форматы, создавать из файла виртуальный диск, записывать образ на физический диск, удалять данные внутри образа. UltraISO – самая функциональная и простая утилита для наших целей. В наличии русскоязычный интерфейс, так что вам не придется пробираться через дебри иностранного языка. Когда возникает проблема: файл bin (бин) как открыть, программа UltraISO вам поможет.

Рассмотрим процесс конвертирования файла BIN через утилиту UltraISO. Мы изменим формат файла на привычный (ISO), что в дальнейшем упростит манипуляции с образом.

  1. Открываем наш документ.

  2. Кликаем «File»->«Open». В проводнике находим путь в требуемому образу диска.

  3. Открываем файл.

  4. Конвертируем файл. Выбираем «Tools»->«Convert».

  5. В «Output Format» ставим галочку на пункте «Standart ISO (.ISO)». Жмем кнопку «Convert».

  6. В случае успешной конвертации видим окно как на скриншоте ниже.

Power ISO

Аналог приложения, описанного выше. Наблюдаются даже повторения в интерфейсе. Программа распространяется бесплатно, но с урезанным функционалом. Чтобы использовать все возможности софта, придется купить лицензию.

Аналог приложения UltraISO программа PowerISO

Помимо образов дисков, в формат BIN сохраняют фильмы. Пользователи привыкли к MP4, AVI, а потому, когда видят название фильма с расширением BIN – теряются.

Мы рассмотрим ещё 2 приложения для проигрывания кино из BIN.

VLC media player

Программа VLC media player

Входит в ТОП программ для просмотра видео. Открывает множество форматов фильмов, имеет понятный и приятный глазу интерфейс. Главный плюс – софт абсолютно бесплатен. Нам же она интересна из-за возможности открывать бинарные файлы, чем не может похвастаться большинство видео плееров. Программа устанавливается на все существующие системы. Установив VLC, вам будет доступна работа со сжатыми файлами в системе MacOS и Linux.

Total Video Player

Программа Total Video Player

Программа значительно проще, с невзрачным интерфейсом. Но за устаревшей графической оболочкой срывает огромный функционал. Помимо BIN, утилита открывает любое видео. Это самый универсальный продукт, проигрывающий фильмы и аудио.

fseek

Одной из важных функций для работы с бинарными файлами является функция fseek

int fseek ( FILE * stream, long int offset, int origin );

Эта функция устанавливает указатель позиции, ассоциированный с потоком, на новое положение. Индикатор позиции указывает, на каком месте в файле мы остановились.
Когда мы открываем файл, позиция равна 0. Каждый раз, записывая байт данных, указатель позиции сдвигается на единицу вперёд.

fseek принимает в качестве аргументов указатель на поток и сдвиг в offset байт относительно origin. origin может принимать три значения

  • SEEK_SET — начало файла
  • SEEK_CUR — текущее положение файла
  • SEEK_END — конец файла. К сожалению, стандартом не определено, что такое конец файла, поэтому полагаться на эту функцию нельзя.

В случае удачной работы функция возвращает 0.

Дополним наш старый пример: запишем число, затем сдвинемся указатель на начало файла и прочитаем его.

#include 
#include 
#include 

#define ERROR_FILE_OPEN -3

void main() {
	FILE *iofile = NULL;
	int number;

	iofile = fopen("D:/c/output.bin", "w+b");
	if (iofile == NULL) {
		printf("Error opening file");
		getch();
		exit(ERROR_FILE_OPEN);
	}

	scanf("%d", &number);
	fwrite(&number, sizeof(int), 1, iofile);
	fseek(iofile, 0, SEEK_SET);
	number = 0;
	fread(&number, sizeof(int), 1, iofile);
	printf("%d", number);

	fclose(iofile);
	_getch();
}

Вместо этого можно также использовать функцию rewind, которая перемещает индикатор позиции в начало.

В си определён специальный тип fpos_t, который используется для хранения позиции индикатора позиции в файле.

Функция

int fgetpos ( FILE * stream, fpos_t * pos );

используется для того, чтобы назначить переменной pos текущее положение. Функция

int fsetpos ( FILE * stream, const fpos_t * pos );

используется для перевода указателя в позицию, которая хранится в переменной pos. Обе функции в случае удачного завершения возвращают ноль.

long int ftell ( FILE * stream );

возвращает текущее положение индикатора относительно начала файла. Для бинарных файлов — это число байт, для текстовых не определено (если текстовый файл состоит из однобайтовых
символов, то также число байт).

Рассмотрим пример: пользователь вводит числа. Первые 4 байта файла: целое, которое обозначает, сколько чисел было введено. После того, как пользователь прекращает вводить числа,
мы перемещаемся в начало файла и записываем туда число введённых элементов.

#include 
#include 
#include 

#define ERROR_OPEN_FILE -3
 
void main() {
    FILE *iofile = NULL;
	unsigned counter = 0;
	int num;
	int yn;

	iofile = fopen("D:/c/numbers.bin", "w+b");
	if (iofile == NULL) {
		printf("Error opening file");
		getch();
		exit(ERROR_OPEN_FILE);
	}

	fwrite(&counter, sizeof(int), 1, iofile);
	do {
		printf("enter new number? ");
		scanf("%d", &yn);
		if (yn == 1) {
			scanf("%d", &num);
			fwrite(&num, sizeof(int), 1, iofile);
			counter++;
		} else {
			rewind(iofile);
			fwrite(&counter, sizeof(int), 1, iofile);
			break;
		}
	} while(1);
	
	fclose(iofile);
	getch();
}

Вторая программа сначала считывает количество записанных чисел, а потом считывает и выводит числа по порядку.

Шаги

Метод 1

Запись образа

  1. 1

    Найдите файлы. Если вы хотите записать файл BIN на CD или DVD диск, вам понадобится файл CUE. Если у вас есть файл BIN, но нет файла CUE, вы можете создать его.

  2. 2

    Создание CUE файла. Откройте Блокнот и введите следующие строки:

    • Измените «filename.bin» на имя вашего BIN файла, который вы собираетесь записать на диск. Сохраните кавычки.
    • Сохраните файл CUE в ту же папку, что и файл BIN. Файл CUE должен быть назван точно так же, как и файл BIN (кроме расширения CUE). В меню «Файл» выберите «Сохранить как». Нажмите «Тип файла» и выберите «Все файлы». Введите расширение .CUE.
  3. 3

    Откройте программу записи образа на диск. Так как BIN является устаревшим форматом, только старые программы полностью поддерживают его. Такие программы включают CDRWIN , Alcohol 120% и Nero.

  4. 4

    Загрузите образ. В зависимости от программы, загрузите либо файл CUE, либо файл BIN. После загрузки образа отобразятся данные о занимаемом образом пространстве на диске.

  5. 5

    Начните запись (прожиг). Если образ загружен правильно, вставьте чистый диск и начните прожиг. Время, необходимое для записи, зависит от размера образа, скорости оптического привода и производительности вашего компьютера.

  6. 6

    Проверьте диск. После завершения прожига проверьте диск на правильность записи образа.

Метод 2

Монтирование образа

  1. 1

    Установите программу-эмулятор виртуальных приводов. Виртуальный привод – это эмуляция оптического привода, позволяющая монтировать образы. То есть диск вставляется в виртуальное (несуществующее) устройство, но работает так, как если бы был вставлен в реальный оптический привод.

    • Есть несколько бесплатных программ-эмуляторов и DaemonTools является одной из самых популярных. При ее установке не позволяйте устанавливать дополнительные приложения, которые, скорее всего, вам не нужны.
    • Смонтированный образ откроется, только если он изначально предназначался для работы на компьютере. Например, смонтированный образ старой консольной игры не откроется, потому что диск предназначался для игровых консолей.
    • Монтирование образа в Windows 8 и в Mac OS X происходит посредством встроенных утилит, но для этого сначала необходимо конвертировать BIN файл в формат ISO.
  2. 2

    Смонтируйте образ.

    Найдите файл CUE на жестком диске. Помните, что BIN и CUE файлы должны быть в одной папке. Загрузите файл CUE в виртуальный привод.

    Такие программы, как DaemonTools, отображают значок в системном трее. Щелкните правой кнопкой мыши по этому значку, наведите курсор на один из виртуальных приводов, а затем выберите «Монтировать образ».

  3. 3

    Откройте диск.

    Работайте с образом так же, как вы бы работали с реальным CD или DVD диском.

    После того, как образ смонтирован, компьютер будет работать с ним так, как если бы реальный диск был вставлен в реальный привод. То есть образ может как открыться через автозапуск, так и через сообщение с запросом о работе с диском (такие сообщения зависят от содержимого диска и системных настроек).

Метод 3

Конвертирование BIN файла в формат ISO

  1. 1

    Скачайте программу-конвертер, чтобы преобразовать BIN файл в ISO файл.

    Одним из самых популярных и бесплатных конвертеров является MagicISO.

    После конвертации вы сможете смонтировать ISO файл или записать его на диск.

  2. 2

    Запустите конвертер. Откройте MagicISO и нажмите «Инструменты» – «BIN в ISO».

  3. 3

    Найдите BIN файл.

  4. 4

    Введите имя конечного ISO файла.

  5. 5

    Нажмите «Конвертировать», чтобы преобразовать BIN файл в ISO файл. Это может занять несколько минут.

  6. 6

    Смонтируйте ISO файл в виртуальный привод. В Windows 8 или OS X щелкните правой кнопкой мыши по файлу ISO и выберите «Монтировать».

  7. 7

    Запишите ISO файл. Вы можете записывать ISO файлы на диски при помощи множества программ для записи дисков. Прочитайте эту статью для получения подробной информации.

  8. 8

    Откройте ISO файл. Вы можете открыть ISO файл при помощи MagicISO, чтобы просмотреть его содержимое и скопировать определенные файлы.

Бинарные файлы. BinaryWriter и BinaryReader

Последнее обновление: 13.10.2019

Для работы с бинарными файлами предназначена пара классов BinaryWriter и BinaryReader.
Эти классы позволяют читать и записывать данные в двоичном формате.

Основные метода класса BinaryWriter

  • Close(): закрывает поток и освобождает ресурсы

  • Flush(): очищает буфер, дописывая из него оставшиеся данные в файл

  • Seek(): устанавливает позицию в потоке

  • Write(): записывает данные в поток

Основные метода класса BinaryReader

  • Close(): закрывает поток и освобождает ресурсы

  • ReadBoolean(): считывает значение bool и перемещает указатель на один байт

  • ReadByte(): считывает один байт и перемещает указатель на один байт

  • ReadChar(): считывает значение char, то есть один символ, и перемещает указатель на столько байтов,
    сколько занимает символ в текущей кодировке

  • ReadDecimal(): считывает значение decimal и перемещает указатель на 16 байт

  • ReadDouble(): считывает значение double и перемещает указатель на 8 байт

  • ReadInt16(): считывает значение short и перемещает указатель на 2 байта

  • ReadInt32(): считывает значение int и перемещает указатель на 4 байта

  • ReadInt64(): считывает значение long и перемещает указатель на 8 байт

  • ReadSingle(): считывает значение float и перемещает указатель на 4 байта

  • ReadString(): считывает значение string. Каждая строка предваряется значением длины строки, которое представляет 7-битное
    целое число

С чтением бинарных данных все просто: соответствующий метод считывает данные определенного типа и перемещает указатель на размер этого
типа в байтах, например, значение типа int занимает 4 байта, поэтому BinaryReader считает 4 байта и переместит указать на эти 4 байта.

Посмотрим на реальной задаче применение этих классов. Попробуем с их помощью записывать и считывать из файла массив структур:

struct State
{
    public string name;
    public string capital;
    public int area;
    public double people;

    public State(string n, string c, int a, double p)
    {
        name = n;
        capital = c;
        people = p;
        area = a;
    }
}
class Program
{
    static void Main(string[] args)
    {
		State[] states = new State;
        states = new State("Германия", "Берлин",  357168,  80.8);
        states = new State("Франция", "Париж", 640679, 64.7);

		string path= @"C:\SomeDir\states.dat";

        try
        {
			// создаем объект BinaryWriter
            using (BinaryWriter writer = new BinaryWriter(File.Open(path, FileMode.OpenOrCreate)))
            {
				// записываем в файл значение каждого поля структуры
                foreach (State s in states)
                {
                    writer.Write(s.name);
                    writer.Write(s.capital);
                    writer.Write(s.area);
                    writer.Write(s.people);
                }
            }
			// создаем объект BinaryReader
            using (BinaryReader reader = new BinaryReader(File.Open(path, FileMode.Open)))
            {
				// пока не достигнут конец файла
				// считываем каждое значение из файла
                while (reader.PeekChar() > -1)
                {
                    string name = reader.ReadString();
                    string capital = reader.ReadString();
                    int area = reader.ReadInt32();
                    double population = reader.ReadDouble();

                    Console.WriteLine("Страна: {0}  столица: {1}  площадь {2} кв. км   численность населения: {3} млн. чел.", 
                        name, capital, area, population);
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
        Console.ReadLine();
    }
}

Итак, у нас есть структура State с некоторым набором полей. В основной программе создаем массив структур и записываем с помощью BinaryWriter.
Этот класс в качестве параметра в конструкторе принимает объект Stream, который создается вызовом .

Затем в цикле пробегаемся по массиву структур и записываем каждое поле структуры в поток. В том порядке, в каком эти значения полей записываются,
в том порядке они и будут размещаться в файле.

Затем считываем из записанного файла. Конструктор класса BinaryReader также в качестве параметра принимает объект потока, только в данном
случае устанавливаем в качестве режима FileMode.Open:

В цикле считываем данные. Чтобы узнать окончание потока, вызываем метод . Этот метод считывает
следующий символ и возвращает его числовое представление. Если символ отсутствует, то метод возвращает -1, что будет означать, что мы достигли конца файла.

В цикле последовательно считываем значения поле структур в том же порядке, в каком они записывались.

Таким образом, классы BinaryWriter и BinaryReader очень удобны для работы с бинарными файлами, особенно когда нам известна структура этих файлов. В то же
время для хранения и считывания более комплексных объектов, например, объектов классов, лучше подходит другое решение — сериализация.

НазадВперед

Как открыть файл BIN

Итак, чем открыть .bin формат? Сразу отмечу, что в сети вы не найдёте удобных онлайн-ресурсов, позволяющих открыть файл bin онлайн. Не только потому, что такие файлы в большинстве случаев не предназначены для их открытия, но и потому, что они имеют разнообразную суть и предназначение.

Открываем бин-файлы с FileViewPro

Образы дисков с расширением bin

Если у вас есть файл с расширением «бин» большого размера, то, вполне возможно, что это СД (ДВД) образ диска. Для его открытия используйте такие программы как PowerISO, Ultraiso, Smart Projects IsoBuster, Alcohol 120 и другие аналогичные варианты. Можете попробовать переименовать  расширение вашего файла с bin на iso, это позволит более эффективно открывать подобные имидж-файлы на вашем компьютере.

  • Запустите данную программу;
  • Выберите вкладку «File» (Файлы);
  • Нажмите на «Open» (открыть), найдите на винчестере нужный бин-файл и кликните на  него;
  • Нажмите на «Exract» (извлечь), укажите конечную  директорию для извлечения файлов, выберите «All Files» (все файлы) при необходимости, а потом нажмите на «Ок», это поможет в открыть файл формата bin на компьютере.

Воспроизводим BIN с помощью PowerISO

Вьювер VLC Player

Образы картриджа Сега или Нинтендо

Открываются с помощью с помощью компьютерных эмуляторов для Сега или Нинтендо. Например, если вы ищите ответ на вопрос о том, чем открыть бин файл, то для образов Сега можно использовать такие программы как Gens Plus!, Ages, Kega Fusion, Pico Drive и другие;

Другие файлы

Открывать же другие файлы с расширением BIN (файлы прошивок роутеров, различные игровые архивы, файлы для Макинтош и так далее) обычному пользователю нет никакой необходимости, так как вы увидите просто набор данных. Изменения в подобном наборе (даже случайные) могут повлечь появление дисфункции у программ, работающих с бин-файлами, потому такой «хирургии» внутренностей бин-файлов необходимо избегать.

Чем открыть файл BIN: простые способы для разных систем

Для чего предназначен универсальный формат BIN с двоичными данными, и чем его открыть на компьютере

Основная задача BIN формата — сохранять двоичные данные цифровых образов CD и DVD на ПК. Чаще всего файл является цифровой эмуляцией физического носителя со свойствами, идентичными формату ISO, но может быть предназначен и для других целей. Благодаря этой статье вы поймете, чем открыть файл BIN на компьютере и зачем он нужен.

Как открыть BIN

Расширение BIN представляет собой метаданные, описывающие содержимое диска, находящегося в дисководе (порядок расположения информации, тип образа, занимаемый объем памяти и т.д.). Такой формат можно назвать универсальным, т.к. файлы бинарного типа используются всеми операционными системами, включая Android и iOS.

Одним из недостатков BIN-файлов является путаница в назначении и множестве методов просмотра документа в зависимости от сферы использования. Столкнуться с данным форматом можно при работе с образами CD- и DVD-дисков, архивами на macOS, образами игр для эмуляторов, а также при прошивке маршрутизатора. Чтобы представлять, с каким BIN-файлом имеете дело, стоит взглянуть на размер и сопроводительные файлы в папке.

Помимо описанных назначений BIN встречается в смартфонах Nokia и Blackberry (RIM).

CD и DVD-образы

Формат BIN — файл образа, т.е. полная цифровая копия физического диска (эмуляция). Также под расширением скрывается инфо-файл о дорожках воспроизведения (количество фильмов и эпизодов сериала, видеоклипы и иная цифровая информация, считываемая мультимедийным плеером при воспроизведении). Следственно, для открытия файлов используется соответствующее ПО.

Программы для монтирования CD/DVD образа можно скачать на нашем сайте:

Для открытия двоичных видеофайлов, скачайте видеоплееры:

  • VLC Media Player;
  • KMPlayer;
  • JetAudio.

Архивы MacBinary

На Macintosh распространены архивы MacBinary, в которых BIN-файл хранит в себе следующий набор нулей и единиц:

  • заголовок Finder;
  • разветвленные ресурсы и данные;
  • систематизированное древо проприетарной файловой системы HFS.

В качество ПО рекомендуем использовать The Unarchiver или стандартный архиватор — Apple Archive Utility.

Также BIN-формат применялся для отправки файлов по интернету из-под macOS, однако сегодня вытеснен архивами нового типа с разрешением DMG.

Открыть BIN в редакторе

BIN-файлы хранят информацию в двоичном виде. Такие документы создаются программами и приложениями для хранения и структуризации данных в режиме «только для чтения». Переписать содержимое документа классическим текстовым редактором не получится.

Необходимое ПО:

  • MS Notepad;
  • OpenOffice;
  • Notepad ++.

Образы для эмуляторов

Если выросли в 90-е годы, то наверняка застали игровую приставку Sega Genesis, которую в СНГ назвали Mega Drive. Причем тут BIN? Образы видеоигр для картриджей Сеги кодируются бинарно, поэтому понадобятся программы-эмуляторы.

Эмуляторы Sega для работы с BIN:

В случае с Nintendo DS картина схожая. BIN-файлы нужны для хранения исполняемых данных, которые при желании корректируются для запуска проекта на эмуляторе. Библиотеки BIN хранятся в одной папке с файлами типа NDS.

Эмуляторы Nentendo DS для работы с BIN:

  • DSOrganize;
  • DeSmuME;
  • Ensata DS Emulator.

Для консоли Sony Playstation первого поколения разработаны эмуляторы, среди которых стоит выделить PCSX, использующий BIN-формат для сохранения BIOS оригинальной приставки. Такой подход необходим, чтобы пользователь ПК чувствовал полное погружение в игру с аутентичными ощущениями (плавность картинки, динамика, тайминги).

Эмуляторы PlayStation для работы с BIN:

Прошивка маршрутизатора

Производители сетевого оборудования (Belkin, Linksys) регулярно обновляют выпускаемые маршрутизаторы программно, меняя низкоуровневые данные, управляющие модемом. BIN-файлы, содержащие свежее обновление для сетевого оборудования, инсталлируются благодаря интерфейсу самого роутера. Например, чтобы прошить оборудование от Linksys, в интерфейсе разработана вкладка «Администрирование». Попасть в настройки можно, введя в поисковой строке любого браузера «192.168.1.1».

Частые проблемы BIN-файлов

Главный недостаток формата — «любовь» со стороны злоумышленников и хакеров, которые модифицируют BIN-файлы, делая из них вирусы. В результате видны следующие ошибки на ПК:

  • ошибка в файле .bin;
  • отсутствует файл .bin;
  • не удалось загрузить .bin.

Причины следующие:

  • повреждение ключей реестра Windows или Linux;
  • вирусы;
  • конфликт файлов ПО (а точнее бинарных библиотек).
Ссылка на основную публикацию