Do you think that this code is not working? Or only other method?
package pl.codegym.task.task18.task1828;
/*
Ceny 2
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
String c = args[0]; // 8 znaków
String productName = args[1]; // 30 znaków
String price = args[2]; // 8 znaków
String quantity = args[3]; // 4 znaki
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
reader = new BufferedReader(new FileReader(fileName));
String line = "";
String data = "";
switch (args[0]) {
case "-u": {
while ((line = reader.readLine()) != null) {
data = line;
String oldID = data.substring(0, 8).trim();
if (oldID.equals(args[0])) {
writer.write("\n" + updateList(args[0], args[1], args[2], args[3]));
} else {
writer.write(data);
}
}
reader.close();
writer.close();
}
case "-d": {
while ((line = reader.readLine()) != null) {
data = line;
String oldID = data.substring(0, 8).trim();
if (oldID == args[0]) {
continue;
} else {
writer.write(data);
}
}
reader.close();
writer.close();
}
}
}
public static String updateList(String args0, String args1, String args2, String args3) {
String stringToWrite = "";
stringToWrite += args0;
for (int i = 0; i < 8 - args0.length(); i++) {
stringToWrite += " ";
}
stringToWrite += args1;
for (int i = 0; i < 30 - args1.length(); i++) {
stringToWrite += " ";
}
stringToWrite += args2;
for (int i = 0; i < 8 - args2.length(); i++) {
stringToWrite += " ";
}
stringToWrite += args3;
for (int i = 0; i < 4 - args3.length(); i++) {
stringToWrite += " ";
}
return stringToWrite;
}
}
// int oldID = Integer.parseInt(data.substring(0, 8));
// if (oldID == args[0])
/*
Ceny 2
CrUD dla tabeli w pliku
Odczytaj z konsoli nazwę pliku dla operacji CrUD
Program jest wykonywany z jednym z następujących zestawów argumentów:
-u id productName price quantity
-d id
Wartości argumentów:
gdzie id to 8 znaków
productName to 30 znaków
price to 8 znaków
quantity to 4 znaki
-u aktualizuje dane dotyczące produktu o określonym id
-d fizycznie usuwa produkt o określonym id (wszystkie dane związane z przekazanym id)
Dane w pliku są przechowywane w następującej kolejności (bez spacji):
id productName price quantity
Każde pole danych jest uzupełniane spacjami na całej długości
Przykład:
19847 Swim trunks, blue 159.00 12
198479 Swim trunks, black with printe173.00 17
19847983Snowboard jacket with reflecti10173.991234
Requirements:
1. Program powinien odczytywać z konsoli nazwę pliku dla operacji CrUD.
2. W przypadku uruchamiania programu bez argumentów, lista produktów musi pozostać niezmieniona.
3. W przypadku uruchamiania programu z argumentami "-u id productName price quantity", informacje dotyczące produktów znajdujące się w pliku powinny zostać zaktualizowane.
4. W przypadku uruchamiania programu z argumentami "-d id", należy usunąć z pliku linię dotyczącą produktu o określonym id.
5. Strumienie pliku muszą zostać zamknięte.
*/