Бесит уже блин этот валидатор...
package com.javarush.task.task18.task1828;
/*
Прайсы 2
*/
//РАЗБЕРИСЬ С ТЕМПЕСТОМ!!! ПЖАЛСТА
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String filename = r.readLine();
FileInputStream fileInputStream = new FileInputStream(filename);
byte[] buffer = new byte[fileInputStream.available()];
int count;
int tempppppp = 8;
if(fileInputStream.available() > 0){
count = fileInputStream.read(buffer, 0, fileInputStream.available());
}
fileInputStream.close();
switch (args[0]){
case "-u":
String tmpp = "";
int tmp = 0;
int uuu = Integer.parseInt(args[1]);;
for(int i = 0; i < buffer.length; i++){
tmpp += String.valueOf((char) buffer[i]);
tmp = caster(tmpp);
//System.out.println(tmp);
//System.out.println(uuu);
//System.out.println( buffer[i]);
//System.out.println(uuu == tmp);
//System.out.println("");
if(uuu == tmp && (buffer[i + 1] == 32 || i == tempppppp)){
while(buffer[i + 1] == 32){
i++;
//System.out.println(buffer[i]);
}
i++;
//System.out.println(buffer[i]);
//System.out.println("Их");
String productName = String.format("%-30.30s", args[2]);
String price = String.format(Locale.ROOT, "%-8.2f", Double.parseDouble(args[3]));
if(price.length() > 8){
price = price.substring(0, 8);
}else if(price.length() < 8){
while(price.length() < 8){
price += " ";
}
}
String quantity = String.format("%-4d", Integer.parseInt(args[4]));
//System.out.println(productName);
//System.out.println(price);
//System.out.println(quantity);
i = i - 1;
for(char g : productName.toCharArray()){
i++;
buffer[i] = (byte) g;
}
for(char gg : price.toCharArray()){
i++;
buffer[i] = (byte) gg;
}
for(char ggg : quantity.toCharArray()){
i++;
buffer[i] = (byte) ggg;
}
break;
}else if(uuu != tmp && buffer[i + 1] == 32){
while(buffer[i + 1] == 32){
i++;
//System.out.println(buffer[i]);
}
i++;
i += 43;
tmp = 0;
tmpp = "";
tempppppp += 51;
}
}
FileOutputStream fileOutputStream = new FileOutputStream(filename);
fileOutputStream.write(buffer, 0, buffer.length);
fileOutputStream.close();
break;
case "-d":
String dtmpp = "";
int dtmp = 0;
int duuu = Integer.parseInt(args[1]);;
FileOutputStream fieOutputStream = new FileOutputStream(filename);
for(int i = 0; i < buffer.length; i++){
dtmpp += String.valueOf((char) buffer[i]);
dtmp = caster(dtmpp);
//System.out.println(dtmp);
//System.out.println(duuu);
//System.out.println( buffer[i]);
//System.out.println(duuu == dtmp);
//System.out.println("");
if(duuu == dtmp && (buffer[i + 1] == 32 || i == tempppppp)){
try{
while(buffer[i - 1] != 10){
i--;
}
}catch (Exception e){
i = 0;
}
for(int k = 0; k < buffer.length; k++){
if(k >= i && k <= i + 51){
Solution.doNothing();
}else{
fieOutputStream.write(buffer[k]);
}
}
fieOutputStream.close();
break;
}else if(duuu != dtmp && buffer[i + 1] == 32){
while(buffer[i + 1] == 32){
i++;
//System.out.println(buffer[i]);
}
i++;
i += 43;
dtmp = 0;
dtmpp = "";
tempppppp += 51;
}
}
break;
}
}
private static void doNothing() {
; // I like this method because he does absolutely the same as me. Nothing.
}
private static boolean IsNotInt(String i) {
try{
Integer.parseInt(i);
return false;
}catch(Exception e){
return true;
}
}
public static int caster(String t){
try{
int y = Integer.parseInt(t);
return y;
}catch(NumberFormatException e){
return 0;
}
}
}