package com.javarush.task.task18.task1828;
import java.io.*;
import java.util.LinkedHashMap;
import java.util.Map;
public class Solution {
public static void main(String[] args) throws Exception {
if(args.length != 0){
LinkedHashMap<String, String> mapFile = new LinkedHashMap<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
File file = new File(reader.readLine());
reader.close();
reader = new BufferedReader(new FileReader(file));
String dataLine;
int max = Integer.MIN_VALUE;
while ( (dataLine = reader.readLine()) != null){
int id = Integer.parseInt(dataLine.substring(0,8).trim());
mapFile.put(dataLine.substring(0,8),dataLine.substring(8));
if(max < id){
max = id;
}
}
reader.close();
String product = "";
String price ;
String quality;
int id;
if(args[0].equals("-c") && args.length >= 4){
for(int i = 1; i < args.length-2; i++){
product = product.concat(args[i] + " ");
}
String idString = String.valueOf(++max).concat(" ").substring(0,8);
product = product.concat(" ").substring(0,30);
price = args[args.length -2].concat(" ").substring(0,8);
quality = args[args.length-1].concat(" ").substring(0,4);
mapFile.put(idString, product.concat(price.concat(quality)));
}else if(args[0].equals("-u") && args.length >= 5){
id = Integer.parseInt(args[1].trim());
for(int i = 2; i < args.length-2; i++){
product = product.concat(args[i] + " ");
}
String idString = String.valueOf(id).concat(" ").substring(0,8);
product = product.concat(" ").substring(0,30);
price = args[args.length -2].concat(" ").substring(0,8);
quality = args[args.length-1].concat(" ").substring(0,4);
if(mapFile.containsKey(idString)){
mapFile.put(idString, product.concat(price.concat(quality)));
}
}else if(args[0].equals("-d") && args.length == 2){
id = Integer.parseInt(args[1].trim());
String idString = String.valueOf(id).concat(" ").substring(0,8);
if(mapFile.containsKey(idString)){
mapFile.remove(idString);
}
}
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
for(Map.Entry<String, String> pair : mapFile.entrySet()){
writer.write(pair.getKey()+pair.getValue());
writer.newLine();
}
writer.close();
mapFile.clear();
}
}
}
Pavel Berdyuhin
27 уровень
Люди Помогите!!!
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Pavel Berdyuhin
27 декабря 2018, 08:39
Сделал все тоже самое, только через методы, update и delete, и валидатор пропустил......
0
Дмитрий СоснинExpert
27 декабря 2018, 09:17
это у него бывает ))
0
Pavel Berdyuhin
26 декабря 2018, 13:59
}else if(args[0].equals("-u") && args.length >= 5){
for(int i = 2; i < args.length-2; i++){
product = product.concat(args[i] + " ");
}
String idString = args[1].concat(" ").substring(0,8);
product = product.concat(" ").substring(0,30);
price = args[args.length -2].concat(" ").substring(0,8);
quality = args[args.length-1].concat(" ").substring(0,4);
for(int i = 0; i < listFile.size(); i++){
if (listFile.get(i).startsWith(idString)){
listFile.set(i,idString.concat(product.concat(price.concat(quality))) );
}
}
}else if(args[0].equals("-d") && args.length == 2){
String idString = args[1].concat(" ").substring(0,8);
for(int i = 0; i < listFile.size(); i++) {
if (listFile.get(i).startsWith(idString)) {
listFile.remove(i);
}
}
}
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
for(String s : listFile){
writer.write(s);
writer.newLine();
}
writer.close();
listFile.clear();
}
0
Pavel Berdyuhin
26 декабря 2018, 13:57
Я не могу понять, что я упустил(
Уже пробовал, через список, все равно без толку
0
Дмитрий СоснинExpert
26 декабря 2018, 14:15
покажи что в файле твориться если входной был как в условии.
1 если программа запущена с параметрами -d 19847983
2 с параметрами -u 198479 "Шорты со слоником" 858 1
0
Pavel Berdyuhin
26 декабря 2018, 15:15
19847 Шорты пляжные синие 159.00 12
198479 Шорты со слоником 858 1
Убрало двойные кавычки...
0