Advertisement
jaVer404

level18.lesson10.bonus03(with delete func)

Feb 15th, 2016
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.75 KB | None | 0 0
  1. package com.javarush.test.level18.lesson10.bonus03;
  2.  
  3. /* Прайсы 2
  4. CrUD для таблицы внутри файла
  5. Считать с консоли имя файла для операций CrUD
  6. Программа запускается с одним из следующих наборов параметров:
  7. -u id productName price quantity
  8. -d id
  9. Значения параметров:
  10. где id - 8 символов
  11. productName - название товара, 30 chars (60 bytes)
  12. price - цена, 8 символов
  13. quantity - количество, 4 символа
  14. -u  - обновляет данные товара с заданным id
  15. -d  - производит физическое удаление товара с заданным id (все данные, которые относятся к переданному id)
  16.  
  17. В файле данные хранятся в следующей последовательности (без разделяющих пробелов):
  18. id productName price quantity
  19. Данные дополнены пробелами до их длины
  20.  
  21. Пример:
  22. 19846   Шорты пляжные синие           159.00  12
  23. 198478  Шорты пляжные черные с рисунко173.00  17
  24. 19847983Куртка для сноубордистов, разм10173.991234
  25. */
  26.  
  27. import java.io.*;
  28. import java.util.ArrayList;
  29.  
  30. public class Solution {
  31.     public static void main(String[] args) {
  32. /*-------------------------------------------*/
  33.         if (((args.length) > 0) && argsFine(args[0]))
  34.         {
  35.             BufferedReader reader = null;
  36.             String fileName;
  37.             try
  38.             {
  39.                 reader = new BufferedReader(new InputStreamReader(System.in));
  40.                 fileName=reader.readLine();
  41.                 reader.close();
  42.                
  43.                 if (args[0].equals("-u"))
  44.                 {
  45.  
  46.                 }
  47.  
  48.                 else if (args[0].equals("-d"))
  49.                 {
  50.                     deleteLine(fileName,getID(args[1]));
  51.                 }
  52.             }
  53.  
  54.             catch (Exception e) {
  55.             }
  56.  
  57. /*---------- * Закрываем потоки
  58.              * */
  59.             finally
  60.             {
  61.                 if (reader!=null) {
  62.                     try
  63.                     {
  64.                         reader.close();
  65.                     }
  66.                     catch (IOException e) {}
  67.                 }
  68.             }
  69.         }
  70.     }
  71.  
  72.     /**
  73.      * обновляет данные товара с заданным id
  74.      */
  75.     public static void updateLine (String fileName, String idNumber) {
  76.  
  77.     }
  78.  
  79.     /**
  80.      * производит физическое удаление товара с заданным id
  81.      * (все данные, которые относятся к переданному id)
  82.      */
  83.     public static void deleteLine (String fileName, String idNumber) {
  84.         BufferedReader fileReader = null;
  85.         BufferedWriter bufferedWriter = null;
  86.         String fromFile=null;
  87.         idNumber=getID(idNumber);
  88.         ArrayList<String> lines = new ArrayList<String>();
  89.         try {
  90.             fileReader = new BufferedReader(new FileReader(fileName));
  91.  
  92.             while ((fromFile = fileReader.readLine()) != null) {
  93.                 if ((idNumber.equals(getID(fromFile)))!= true) {
  94.                     lines.add(fromFile);
  95.                     System.out.println(fromFile);
  96.                 }
  97.             }
  98.             bufferedWriter = new BufferedWriter(new FileWriter(fileName));
  99.  
  100.             for (String s : lines) {
  101.                 bufferedWriter.write(s);
  102.                 bufferedWriter.newLine();
  103.             }
  104.             fileReader.close();
  105.             bufferedWriter.close();
  106.         }
  107.         catch (IOException e) {
  108.  
  109.         }
  110.         finally
  111.         {
  112.             if (fileReader!=null) {
  113.                 try {
  114.                 fileReader.close();
  115.                 }
  116.                 catch (IOException e) {}
  117.             }
  118.             if (bufferedWriter!=null) {
  119.                 try {
  120.                     bufferedWriter.close();
  121.                 }
  122.                 catch (IOException e) {}
  123.             }
  124.         }
  125.     }
  126.  
  127.     /**
  128.      * check's parametrs
  129.      */
  130.     public static boolean argsFine (String args) {
  131.         if (args.equals("-u")||args.equals("-d")) {
  132.             return true;
  133.         }
  134.         else {
  135.             return false;
  136.         }
  137.     }
  138. /**
  139.  *trim ID from args[1]
  140.  * берет args[1] и обрезает до восьми символов
  141.  */
  142.     public static String getID(String input)
  143.     {
  144.         if (input.length() > 8)
  145.         {
  146.             return input.substring(0, 8);
  147.         }
  148.         return String.format("%-8s", input);
  149.     }
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement