Work great for txt files(tested) but requirements aren't correct. I need (big) piece od advice!
package pl.codegym.task.task18.task1827;
/*
Ceny
*/
import java.io.*;
import java.util.Locale;
public class Solution {
public static void main(String[] args) throws Exception {
Locale.setDefault(new Locale("EN","EN"));
// C:\\Users\\Daniel\\Desktop\\a.txt.txt
if(args[0].equals("-c")) return;
BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
String file = read.readLine();
FileReader fr = new FileReader(file);
FileWriter fw = new FileWriter(file, true);
BufferedReader buffor = new BufferedReader(fr);
int maxId=-1;
while(buffor.ready()) {
String line = buffor.readLine();
String id1 =line.substring(0, 8);
String id2 =id1.trim();
int id = Integer.parseInt(id2);
if (id > maxId) {
maxId = id;
}
}
fw.write(String.format("%n%-8d%-30s%-8.2f%-4d",maxId+1, args[1], Float.parseFloat(args[2]), Integer.parseInt(args[3])));
read.close();
fr.close();
fw.close();
}
}
/*
Ceny
CrUD dla tabeli w pliku.
Odczytaj z konsoli nazwę pliku dla operacji CrUD.
Program jest uruchamiany z następującymi argumentami:
-c productName price quantity
Wartości argumentów:
gdzie id to 8 znaków.
productName to 30 znaków.
price to 8 znaków.
quantity to 4 znaki.
-c dodaje produkt o określonych parametrach na końcu pliku i generuje id poprzez zwiększenie maksymalnej wartości id odnalezionej w pliku.
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.
Przed dodaniem nowej linii, ponownie zapisz całą jej zawartość do pliku.
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. Klasa Solution nie powinna używać zmiennych statycznych.
3. W przypadku uruchamiania programu bez argumentów, lista produktów musi pozostać niezmieniona.
4. W przypadku uruchamiania programu z argumentami "-c productName price quantity", na końcu pliku należy dodać nową linię z odpowiednim produktem.
5. Produkt musi mieć kolejny numer id następujący po maksymalnej wartości id odnalezionej w pliku.
6. Format linii nowego produktu musi dokładnie odpowiadać formatowi określonemu w zadaniu.
7. Strumienie pliku muszą zostać zamknięte.
*/