Программа запускается с одним из следующих наборов параметров: -u id productName price quantity -d id
Download 16.86 Kb.
|
CRUD
- Bu sahifa navigatsiya:
- Matcher
МИНИСТЕРСТВО ПО РАЗВИТИЮ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И КОММУНИКАЦИЙ РЕСПУБЛИКИ УЗБЕКИСТАН ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ИМЕНИ МУХАММАД АЛ-ХОРАЗМИЙ Введение в web-программирование Тема: CRUD Группа 230-21 Выполнил: Собиров С Проверил: Арипова З CRUD для таблицы внутри файла Считать с консоли имя файла для операций CrUD Программа запускается с одним из следующих наборов параметров: -u id productName price quantity -d id Значения параметров: где id - 8 символов productName - название товара, 30 символов price - цена, 8 символов quantity - количество, 4 символа -u - обновляет данные товара с заданным id -d - производит физическое удаление товара с заданным id (все данные, которые относятся к переданному id) В файле данные хранятся в следующей последовательности (без разделяющих пробелов): id productName price quantity Данные дополнены пробелами до их длины Пример:
198479 Шорты пляжные черные с рисунко173.00 17 19847983 Куртка для сноубордистов, разм10173.991234 Требования: 1. Программа должна считать имя файла для операций CrUD с консоли. 2. При запуске программы без параметров список товаров должен остаться неизменным. 3. При запуске программы с параметрами "-u id productName price quantity" должна обновится информация о товаре в файле. 4. При запуске программы с параметрами "-d id" строка товара с заданным id должна быть удалена из файла. 5. Созданные для файлов потоки должны быть закрыты. Мое решение public class Solution { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String fileName = reader.readLine(); ArrayList<String> list = new ArrayList<>(); BufferedReader input = new BufferedReader(new FileReader(fileName)); while (input.ready()) { list.add(input.readLine()); } input.close(); Pattern pattern = Pattern.compile("\\d{1,8}"); switch (args[0]) { case "-u": int id = Integer.parseInt(args[1]); for (String s : list) { Matcher matcher = pattern.matcher(s.substring(0, 8)); matcher.find(); int listId = Integer.parseInt(matcher.group()); if (id == listId) { int index = list.indexOf(s); String newLine = String.format("%-8d%-30.30s%-8.8s%-4.4s", id, args[2], args[3], args[4]); list.set(index, newLine); break; } } break; case "-d": Iterator<String> iter = list.iterator(); while (iter.hasNext()) { String product = iter.next(); if (product.startsWith(args[1])) iter.remove(); } break; } BufferedWriter writer = new BufferedWriter(new FileWriter(fileName)); for (String s : list) { System.out.println(s); writer.write(s); writer.newLine(); } writer.close(); } } Download 16.86 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling