My program works just fine. But the validator complains:
- Wenn das Programm mit den Parametern „-c productName price quantity“ ausgeführt wird, muss am Ende der Datei eine neue Zeile mit dem entsprechenden Produkt hinzugefügt werden.
-- Mentor: Server security exception. You are performing a forbidden or potentially dangerous operation.
=> What kind of security exception? Maybe because of raw string processing instead of using a Reader/Writer?
- Das Produkt muss die nächste ID nach der größten ID erhalten, die in der Datei gefunden wurde.
=> The program does this.
- Das Format der neuen Produktlinie muss genau dem in der Aufgabe angegebenen Format entsprechen.
=> Seems to be correct format.
- Die Dateidatenströme müssen geschlossen werden.
-- Mentor: Der Dateieingabedatenstrom wurde nicht geschlossen.
=> Using try-with-resource...
package de.codegym.task.task18.task1827;
/*
Preise
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) throws Exception {
if (args.length == 0)
return;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String filename = reader.readLine();
ProductList productList = new ProductList();
productList.loadFromFile(filename);
if ("-c".equals(args[0])) {
String productName = args[1];
if (productName.length() > 30)
productName = productName.substring(0, 30);
String priceString = args[2];
if (priceString.length() > 8)
priceString = priceString.substring(0, 8);
double price = Double.parseDouble(args[2]);
String quantityString = args[3];
if (quantityString.length() > 4)
quantityString = quantityString.substring(0, 4);
int quantity = Integer.parseInt(quantityString);
productList.addProduct(productName, price, quantity);
productList.writeToFile(filename);
}
}
}