Advertisement
Guest User

Untitled

a guest
Oct 27th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 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.  
  29. public class Solution
  30. {
  31. public static void main(String[] args) throws Exception
  32. {
  33.  
  34. BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  35. String fileName = reader.readLine();
  36. reader.close();
  37.  
  38. BufferedReader fileReader = new BufferedReader(new FileReader(fileName));
  39. BufferedWriter fileWriter = new BufferedWriter(new FileWriter(fileName+"tmp"));
  40.  
  41. String line;
  42. while ((line = fileReader.readLine()) != null)
  43. {
  44. String id = line.substring(0, 8).trim();
  45. if (id.equals(args[1]))
  46. {
  47. switch (args[0])
  48. {
  49. case "-u":
  50. {
  51. String strToAppend = "";
  52. for (int i = 2; i < args.length - 2; i++)
  53. {
  54. strToAppend += args[i] + " ";
  55. }
  56. line = String.format("%-8s%-30.30s%-8.2f%-4d", id, strToAppend, Float.valueOf(args[args.length - 2]), Integer.valueOf(args[args.length - 1]));
  57. fileWriter.write(line);
  58. fileWriter.newLine();
  59. break;
  60. }
  61. case "-d":
  62. {
  63. line = "";
  64. fileWriter.write(line);
  65. fileWriter.newLine();
  66. break;
  67. }
  68. }
  69. }
  70. else
  71. {
  72. fileWriter.write(line);
  73. fileWriter.newLine();
  74. }
  75. }
  76. fileReader.close();
  77. fileWriter.close();
  78.  
  79. //delete old file
  80. File oldFile = new File(fileName);
  81. oldFile.delete();
  82.  
  83. //And rename tmp file's name to old file name
  84. File newFile = new File(fileName+"tmp");
  85. newFile.renameTo(oldFile);
  86. }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement