Двоичные файлы
Компьютеры основаны на двоичной системе нумерации, которая состоит всего из двух уникальных чисел, 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”