-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSolution.java
More file actions
90 lines (69 loc) · 3.65 KB
/
Solution.java
File metadata and controls
90 lines (69 loc) · 3.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//But now, I say, I am going to Jerusalem, serving the saints. (Romans 15:25)
package com.javarush.task.task18.task1827;
/*
Прайсы
*/
import java.io.*;
import java.util.LinkedList;
import java.util.List;
public class Solution {
public static void main(String[] args) throws Exception {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
String fileName = reader.readLine();
try (BufferedReader fileReader = new BufferedReader(new FileReader(fileName))) {
String line;
int maxId = 0;
List<String> list = new LinkedList<>();
while ((line = fileReader.readLine()) != null) {
list.add(line);
if (maxId < Integer.parseInt(line.substring(0, 8).trim())) {
maxId = Integer.parseInt(line.substring(0, 8).trim());
}
}
try (FileOutputStream fos = new FileOutputStream(fileName)) {
for (String s : list) {
fos.write((String.format("%s%n", s)).getBytes());
}
fos.write(String.format("%-8s%-30s%-8s%-4s%n", ++maxId, args[1], args[2], args[3]).getBytes());
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/*
Прайсы
CrUD для таблицы внутри файла.
Считать с консоли имя файла для операций CrUD.
Программа запускается со следующим набором параметров:
-c productName price quantity
Значения параметров:
где id — 8 символов.
productName — название товара, 30 chars (60 bytes).
price — цена, 8 символов.
quantity — количество, 4 символа.
-c — добавляет товар с заданными параметрами в конец файла, генерирует id самостоятельно, инкрементируя максимальный id, найденный в файле.
В файле данные хранятся в следующей последовательности (без разделяющих пробелов):
id productName price quantity
Данные дополнены пробелами до их длины.
Пример:
19846 Шорты пляжные синие 159.00 12
198478 Шорты пляжные черные с рисунко173.00 17
19847983Куртка для сноубордистов, разм10173.991234
Требования:
1. Программа должна считать имя файла для операций CrUD с консоли.
2. При запуске программы без параметров список товаров должен остаться неизменным.
3. При запуске программы с параметрами "-c productName price quantity" в конец файла должна добавится новая строка с товаром.
4. Товар должен иметь следующий id, после максимального, найденного в файле.
5. Форматирование новой строки товара должно четко совпадать с указанным в задании.
6. Созданные для файлов потоки должны быть закрыты.
package com.javarush.task.task18.task1827;
*
Прайсы
*
public class Solution {
public static void main(String[] args) throws Exception {
}
}
*/