package com.javarush.task.task18.task1828;
/*
Прайсы 2
*/
import java.io.*;
import java.util.*;
public class Solution {
static {
}
public static void main(String[] args) throws Exception {
switch (args[0]) {
case "-u":
update(args);
break;
case "-d":
delete(args);
break;
}
}
public static void update(String[] args) throws IOException {
if (args.length != 0) {
ArrayList<String> list = new ArrayList<>();
int searchedId = Integer.parseInt(args[1]);
Scanner scanner = new Scanner(System.in);
String fileName = scanner.nextLine();
scanner.close();
BufferedReader reader = new BufferedReader(new FileReader(fileName));
while (reader.ready()) {
String str = reader.readLine();
if (!str.equals(""))
list.add(str);
}
reader.close();
for (int i=0; i < list.size(); i++){
String str = list.get(i);
int id = Integer.parseInt(str.substring(0, 8).trim());
if (id == searchedId){
for (int j = args[2].length(); j < 30; j++) {
args[2] = args[2] + " ";
}
for (int j = args[3].length(); j < 8; j++) {
args[3] = args[3] + " ";
}
for (int j = args[4].length(); j < 4; j++) {
args[4] = args[4] + " ";
}
for (int j = args[1].length(); j < 8; j++) {
args[1] = args[1] + " ";
}
str = args[1] + args[2] + args[3] + args[4];
list.set(i, str);
}
}
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
for (String str : list) {
writer.write(str);
writer.newLine();
}
writer.close();
}
}
public static void delete(String[] args) throws IOException{
ArrayList<String> list = new ArrayList<>();
int searchedId = Integer.parseInt(args[1]);
Scanner scanner = new Scanner(System.in);
String fileName = scanner.nextLine();
scanner.close();
BufferedReader reader = new BufferedReader(new FileReader(fileName));
while (reader.ready()) {
String str = reader.readLine();
if (!str.equals(""))
list.add(str);
}
reader.close();
for (int i=0; i < list.size(); i++) {
String str = list.get(i);
int id = Integer.parseInt(str.substring(0, 8).trim());
if (id == searchedId) {
list.remove(i);
}
}
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
for (String str : list) {
writer.write(str);
writer.newLine();
}
writer.close();
}
}
Ray
30 уровень
Записывается в файл в странном виде (см. скриншот), в чем проблема в упор не вижу, даже сдать решил, и валидатор принял. Но такой исход не очень устраивает, подскажите в чем проблема
Новый
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ray
2 ноября 2018, 07:23
Такой результат при попытки изменить строку "19847 Шорты пляжные синие 159.00 12" на "198479 Шорты пляжные !!!!!! с рисунко173.00 17"
0