Файл: Отчет по лабораторной работе 4 Использование операторов и функций. Приложение, реализующее файловый ввод вывод..docx
Добавлен: 11.12.2023
Просмотров: 79
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИФедеральное государственное образовательное бюджетное учреждениевысшего профессионального образования«Санкт-Петербургский государственный университет телекоммуникацийим. проф. М. А. Бонч-Бруевича»Кафедра Безопасности информационных системОтчет по лабораторной работе №4«Использование операторов и функций. Приложение, реализующее файловый ввод – вывод.»По дисциплине: «Кроссплатформенное программирование»Цель работы:
Также одна из функций открывает файл в notepad. Это было реализовано с помощью класса Process. Объекты у этого метода получаются вызовом метода exec() у объекта Runtime, который в свою очередь запускает отдельный процесс. Объект класса Process может использоваться для управления процессом и получения информации о нём. Так как некоторые методы данных классов могут выбрасывать исключения, они были обработаны в блоках try – catch. В качестве «обработки» исключений был применеён метод printStackTrace, который возвращал место ошибки.Ходработы:import java.io.File;import java.io.IOException;import java.util.*;import java.nio.file.Files;import java.nio.file.attribute.BasicFileAttributes;public class Input_Output {public static void main(String[] args) {Scanner scn = new Scanner(System.in);String answer = "";String currentDirectory = "";System.out.println("> Используйте команды : cd, show, mkdir, mkfile, del, prop, open, exit");while (!answer.equals("exit")) {System.out.print(">> ");answer = scn.next().toLowerCase();if (answer.equals("cd")) {currentDirectory = changeDirectory();}else if (answer.equals("show")) {if (!currentDirectory.isEmpty())showItemsFromDirectory(new File(currentDirectory));elseSystem.out.print("> Сначала нужно войти в директорию ");}else if (answer.equals("mkdir") | answer.equals("mkfile")) {System.out.print("> Введите директорию: ");String dir = scn.next();createItem(new File(dir), answer);}else if (answer.equals("del")) {System.out.print("> Введите директорию: ");String dir = scn.next();removeItem(new File(dir));}else if (answer.equals("prop")) {System.out.print("> Введите директорию: ");String dir = scn.next();showProperties(new File(dir));}else if (answer.equals("open")) {System.out.print("> Введите директорию: ");String dir = scn.next();openFile(dir);}else if (!answer.equals("exit"))System.out.println("> Неизвестная команда");}}public static void showItemsFromDirectory(File directory) {if (directory.isDirectory()) {for (File item : directory.listFiles()) {System.out.println("> " + item);}}}public static void createItem(File dir, String com) {Scanner scn = new Scanner(System.in);System.out.print("> Введите имя: ");String ans = scn.next();File newItem = new File(dir.toString() + "//" + ans);if (com.equals("mkdir")) {newItem.mkdir();}else {try {newItem.createNewFile();}catch (IOException e) {e.printStackTrace();}}}public static void removeItem(File dir) {boolean deleted = dir.delete();if(deleted)System.out.println("> Объект успешно удален ");elseSystem.out.println("> Невозможно удалить данный объект ");}public static void showProperties(File dir) {try {BasicFileAttributes attr = Files.readAttributes(dir.toPath(), BasicFileAttributes.class);System.out.println("creationTime: " + attr.creationTime());System.out.println("lastAccessTime: " + attr.lastAccessTime());System.out.println("lastModifiedTime: " + attr.lastModifiedTime());System.out.println("size: " + attr.size());}catch(IOException e) {e.printStackTrace();}}public static String changeDirectory() {Scanner scn = new Scanner(System.in);System.out.print("> Введите директорию: ");String dir = scn.next();return dir;}
-
Изучение общих принципов программирования в среде java. -
Написание приложения, осуществляющего взаимодействия со средствами дискового ввода – вывода.
Также одна из функций открывает файл в notepad. Это было реализовано с помощью класса Process. Объекты у этого метода получаются вызовом метода exec() у объекта Runtime, который в свою очередь запускает отдельный процесс. Объект класса Process может использоваться для управления процессом и получения информации о нём. Так как некоторые методы данных классов могут выбрасывать исключения, они были обработаны в блоках try – catch. В качестве «обработки» исключений был применеён метод printStackTrace, который возвращал место ошибки.Ходработы:import java.io.File;import java.io.IOException;import java.util.*;import java.nio.file.Files;import java.nio.file.attribute.BasicFileAttributes;public class Input_Output {public static void main(String[] args) {Scanner scn = new Scanner(System.in);String answer = "";String currentDirectory = "";System.out.println("> Используйте команды : cd, show, mkdir, mkfile, del, prop, open, exit");while (!answer.equals("exit")) {System.out.print(">> ");answer = scn.next().toLowerCase();if (answer.equals("cd")) {currentDirectory = changeDirectory();}else if (answer.equals("show")) {if (!currentDirectory.isEmpty())showItemsFromDirectory(new File(currentDirectory));elseSystem.out.print("> Сначала нужно войти в директорию ");}else if (answer.equals("mkdir") | answer.equals("mkfile")) {System.out.print("> Введите директорию: ");String dir = scn.next();createItem(new File(dir), answer);}else if (answer.equals("del")) {System.out.print("> Введите директорию: ");String dir = scn.next();removeItem(new File(dir));}else if (answer.equals("prop")) {System.out.print("> Введите директорию: ");String dir = scn.next();showProperties(new File(dir));}else if (answer.equals("open")) {System.out.print("> Введите директорию: ");String dir = scn.next();openFile(dir);}else if (!answer.equals("exit"))System.out.println("> Неизвестная команда");}}public static void showItemsFromDirectory(File directory) {if (directory.isDirectory()) {for (File item : directory.listFiles()) {System.out.println("> " + item);}}}public static void createItem(File dir, String com) {Scanner scn = new Scanner(System.in);System.out.print("> Введите имя: ");String ans = scn.next();File newItem = new File(dir.toString() + "//" + ans);if (com.equals("mkdir")) {newItem.mkdir();}else {try {newItem.createNewFile();}catch (IOException e) {e.printStackTrace();}}}public static void removeItem(File dir) {boolean deleted = dir.delete();if(deleted)System.out.println("> Объект успешно удален ");elseSystem.out.println("> Невозможно удалить данный объект ");}public static void showProperties(File dir) {try {BasicFileAttributes attr = Files.readAttributes(dir.toPath(), BasicFileAttributes.class);System.out.println("creationTime: " + attr.creationTime());System.out.println("lastAccessTime: " + attr.lastAccessTime());System.out.println("lastModifiedTime: " + attr.lastModifiedTime());System.out.println("size: " + attr.size());}catch(IOException e) {e.printStackTrace();}}public static String changeDirectory() {Scanner scn = new Scanner(System.in);System.out.print("> Введите директорию: ");String dir = scn.next();return dir;}
public static void openFile(String path) {
try {
Process process = Runtime.getRuntime().exec("cmd /c notepad.exe " + path);
process.waitFor();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
Выводы:
-
В ходе выполнения лабораторной работы произошло знакомство с операциями над файлами.