Двоичные файлы
Компьютеры основаны на двоичной системе нумерации, которая состоит всего из двух уникальных чисел, 0 и 1 . Все операции, которые возможны в десятичной системе счисления (сложение, вычитание, умножение, деление), одинаково возможны и в двоичной системе счисления. Двоичный файл доступен для чтения компьютером, но не для чтения человеком. Все исполняемые программы хранятся в двоичных файлах, как и большинство файлов числовых данных. Напротив, текстовые файлы хранятся в форме (обычно ASCII), которая удобочитаема для человека.
Запись данных в Двоичный файл
Прием значений данных с консоли и отправка их из буфера памяти на дополнительное запоминающее устройство. Он имеет дело со всеми типами примитивных данных, а именно. short, int, long, float, double, char, boolean и String. В этой системе данные хранятся в байтах на вторичных устройствах хранения. При создании двоичного файла выполните следующие действия: 1. Создайте файл в режиме выходного потока вместе с объектом потока.
Синтаксис: FileOutputStream FileOutputStream <имя файла>
Например,
FileOutputStream fout = new FileOutputStream("example.dat");
Расширение имени файла (.dat) обозначает тип данных, которые хранятся в режиме выходного потока на жестком диске.
2. Создайте связь между объектом FileOutputStream и выходным потоком буфера.
Синтаксис: DataOutputStream DataOutputStream(объект FileOutputStream);
Например:
DataOutputStream dout = new DataOutputStream(fout);
3. Примите необходимые данные из консоли одним из двух способов: (a) С помощью streamreader путем импорта java.io . *
(b) Использование класса Scanner путем импорта java.util. *
4. Запишите данные во вторичное хранилище с помощью этих команд:
- Для записи коротких данных введите –
<объект>.writeShort<имя переменной>
- Для записи данных целочисленного типа –
<объект>.writeInt<имя переменной>
- Для записи длинных данных введите –
<объект>.writeLong<имя переменной>
- Для записи данных типа float –
<объект>.writeFloat<имя переменной>
- Для записи данных двойного типа –
переменной> переменной>
- Для записи данных символьного типа –
<объект>.writeChar<имя переменной>
- Для записи данных строкового типа –
<объект>.writeUTF<имя переменной>
( UTF расшифровывается как Преобразованный в Юникод формат строка)
5. Закройте файл данных, используя объект FileOutputStream как:
Примерная программа
Электронный магазин хочет провести инвентаризацию всех типов товаров в двоичном файле “inventory.dat” для ввода названия продукта, кода продукта, количества продукта и цены. Ниже приведена программа для создания двоичного файла для выполнения вышеуказанной задачи.
import java.io.*; public class sample { public static void main(String args[]) throws IOException { BufferedReader ob=new BufferedReader(new InputStreamReader(System.in)); // Creating binary file FileOutputStream fout=new FileOutputStream("inventory.dat"); DataOutputStream dout=new DataOutputStream(fout); int n, q, pr; String str, pc; System.out.println("Enter number of products:"); n=Integer.parseInt(ob.readLine()); for(int i=1;i<=n;i++) { System.out.println("Enter product name"); str=ob.readLine(); System.out.println("Enter product code"); pc=ob.readLine(); System.out.println("Enter product quantity"); q=Integer.parseInt(ob.readLine()); System.out.println("Enter price"); pr=Integer.parseInt(ob.readLine()); // Writing data values from memory to binary file dout.writeUTF(str); dout.writeUTF(pc); dout.writeInt(q); dout.writeInt(pr); } // Closing binary file object fout.close(); dout.close(); ob.close(); } }
Оригинал: “https://dev.to/preetham/writing-data-to-a-binary-file-in-java-45m1”