Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.javarush.test.level18.lesson10.bonus03;
- /* Прайсы 2
- CrUD для таблицы внутри файла
- Считать с консоли имя файла для операций CrUD
- Программа запускается с одним из следующих наборов параметров:
- -u id productName price quantity
- -d id
- Значения параметров:
- где id - 8 символов
- productName - название товара, 30 chars (60 bytes)
- price - цена, 8 символов
- quantity - количество, 4 символа
- -u - обновляет данные товара с заданным id
- -d - производит физическое удаление товара с заданным id (все данные, которые относятся к переданному id)
- В файле данные хранятся в следующей последовательности (без разделяющих пробелов):
- id productName price quantity
- Данные дополнены пробелами до их длины
- Пример:
- 19846 Шорты пляжные синие 159.00 12
- 198478 Шорты пляжные черные с рисунко173.00 17
- 19847983Куртка для сноубордистов, разм10173.991234
- */
- import java.io.*;
- import java.util.ArrayList;
- public class Solution {
- public static void main(String[] args) {
- /*-------------------------------------------*/
- if (((args.length) > 0) && argsFine(args[0]))
- {
- BufferedReader reader = null;
- String fileName;
- try
- {
- reader = new BufferedReader(new InputStreamReader(System.in));
- fileName=reader.readLine();
- reader.close();
- if (args[0].equals("-u"))
- {
- }
- else if (args[0].equals("-d"))
- {
- deleteLine(fileName,getID(args[1]));
- }
- }
- catch (Exception e) {
- }
- /*---------- * Закрываем потоки
- * */
- finally
- {
- if (reader!=null) {
- try
- {
- reader.close();
- }
- catch (IOException e) {}
- }
- }
- }
- }
- /**
- * обновляет данные товара с заданным id
- */
- public static void updateLine (String fileName, String idNumber) {
- }
- /**
- * производит физическое удаление товара с заданным id
- * (все данные, которые относятся к переданному id)
- */
- public static void deleteLine (String fileName, String idNumber) {
- BufferedReader fileReader = null;
- BufferedWriter bufferedWriter = null;
- String fromFile=null;
- idNumber=getID(idNumber);
- ArrayList<String> lines = new ArrayList<String>();
- try {
- fileReader = new BufferedReader(new FileReader(fileName));
- while ((fromFile = fileReader.readLine()) != null) {
- if ((idNumber.equals(getID(fromFile)))!= true) {
- lines.add(fromFile);
- System.out.println(fromFile);
- }
- }
- bufferedWriter = new BufferedWriter(new FileWriter(fileName));
- for (String s : lines) {
- bufferedWriter.write(s);
- bufferedWriter.newLine();
- }
- fileReader.close();
- bufferedWriter.close();
- }
- catch (IOException e) {
- }
- finally
- {
- if (fileReader!=null) {
- try {
- fileReader.close();
- }
- catch (IOException e) {}
- }
- if (bufferedWriter!=null) {
- try {
- bufferedWriter.close();
- }
- catch (IOException e) {}
- }
- }
- }
- /**
- * check's parametrs
- */
- public static boolean argsFine (String args) {
- if (args.equals("-u")||args.equals("-d")) {
- return true;
- }
- else {
- return false;
- }
- }
- /**
- *trim ID from args[1]
- * берет args[1] и обрезает до восьми символов
- */
- public static String getID(String input)
- {
- if (input.length() > 8)
- {
- return input.substring(0, 8);
- }
- return String.format("%-8s", input);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement