Вы находитесь на странице: 1из 3

Харьковский национальный университет имени В.

 Н. Каразина
Факультет компьютерных наук
Кафедра искусственного интеллекта и программного обеспечения

Отчет по практической работе №5


«Потоки введення-виведення»

дисциплина: «Объектно-ориентированное программирование»

Выполнил: студент группы КС23


Шлыков Евгений Андреевич

Проверил: доцент кафедры ИИПО


кандидат физ.мат.наук
Поклонский Евгений Васильевич

Харьков 2021
2

Задание №1.
1.Розібрати приклади практичного заняття 5 (П5сем3.doc). Запустити приклади,
пояснити вивід на консоль.

2. Використовуючи клас DataInputStream, прочитати заголовок першого (і


єдиного) файлу з movies.zip. Вивести на екран отриману інформацію:

1) Необхідну для розпакування версію архіватора.

2) Назву файлу в архіві.

3) Дату і час його зміни.

4) Його "стислий" і "нестислий" розмір.

Результаты выполнения задания №1 представлены:


1. в листинге 1 – исходный код класса Main;
2. на рисунке 2 – результаты выполнения программы.
Листинг 1. Исходный код класса Main
package pr5;

import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Main {


public static void main(String []args) throws FileNotFoundException, IOException{
DataInputStream bite_string = null;
short time;
short date;
short length;
try {
bite_string = new DataInputStream(new BufferedInputStream(new
FileInputStream(new File("D:\\Учеба\\ООП\\Pr5\\movies.zip"))));
} catch (IOException e) {
e.printStackTrace();
}
bite_string.skipBytes(4);
System.out.println("Версия, необходимая для распаковки: "+
Short.reverseBytes(bite_string.readShort()));
bite_string.skipBytes(4);
time = Short.reverseBytes(bite_string.readShort());
3

System.out.println("Время последнего изменения файла:");


System.out.println("Час: " + (time/(int)(Math.pow(2, 11))) + " Минута: " +
(time/(int)(Math.pow(2, 5)))%(int)Math.pow(2, 6) + " Секунда: " + (int)(time%
(Math.pow(2, 5))) * 2);
date = Short.reverseBytes(bite_string.readShort());
System.out.println("Дата последнего изменения файла:");
System.out.println("День: " + (int)(date%(Math.pow(2, 5))) + " Месяц: " +
(date/(int)(Math.pow(2, 5)))%(int)Math.pow(2, 4) + " Год: " + (date/(int)(Math.pow(2,
10))));
bite_string.skipBytes(4);
System.out.println("Сжатый размер: "+
Integer.reverseBytes(bite_string.readInt()));
System.out.println("Несжатый размер: "+
Integer.reverseBytes(bite_string.readInt()));
length = Short.reverseBytes(bite_string.readShort());
bite_string.skipBytes(2);
System.out.print("Имя файла: ");
for(int i = 0; i < length; i++) {
System.out.print((char)bite_string.read());
}
}
}

Рисунок 2 – Скриншот экрана программы

Вам также может понравиться