the problem of the validator. I tested the program and it works.
package de.codegym.task.task18.task1827;
/*
Preise
*/
import java.io.*;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws Exception {
// C:\Users\vince\Desktop\Test5.txt
int maxId = Integer.MIN_VALUE;
PrintWriter writer;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
if (args.length < 1){
// Produktliste bleibt unverändert
System.out.println("Parameter eingeben: -c productName price quantity");
System.exit(0);
}
//String fileName = "C:\\Users\\vince\\Desktop\\Test5.txt";
ArrayList<String> dateiInhalt = new ArrayList<>();
// Lesen des Dateiinhalts und speichern in Array
FileInputStream inputStream = new FileInputStream(fileName);
BufferedReader data = new BufferedReader(new InputStreamReader(inputStream));
while (true){
String zeile = data.readLine();
if (zeile == null){
inputStream.close();
break;
}
dateiInhalt.add(zeile);
}
// Lesen und Speichern Ende--------------------------------
// Ermitteln größte Id
for (String s : dateiInhalt){
String partString = s.substring(0, 8).trim();
if (maxId < Integer.parseInt(partString))
maxId = Integer.parseInt(partString);
}
// Zusammenstellen einer neuen Dateizeile
String id = String.valueOf(++maxId);// 8 Zeichen
String productName = args[1];// 30 Zeichen
String price = args[2];// 8 Zeichen
String quantity = args[3];// 4 Zeichen
// Zusammenstellen einer neuen Dateizeile mit Stringbuilder
// id
StringBuilder neueZeile = new StringBuilder(id);
for (int i=0; i<8; i++){
if (id.length() <= i)
neueZeile.append(" ");
}
// Produktname
neueZeile.append(productName);
for (int i=0; i<30; i++){
if (productName.length() <= i)
neueZeile.append(" ");
}
// Preis
neueZeile.append(price);
for (int i=0; i<8; i++){
if (price.length() <= i)
neueZeile.append(" ");
}
// Menge
neueZeile.append(quantity);
for (int i=0; i<4; i++){
if (quantity.length() <= i)
neueZeile.append(" ");
}
// schreiben der neueZeile in das Array
dateiInhalt.add(String.valueOf(neueZeile));
// Schreiben des Arrays in die Datei mit PrintWriter
writer = new PrintWriter(new BufferedWriter(new FileWriter(fileName)));
for (String s : dateiInhalt){
writer.println(s);
writer.flush();
}
writer.close();
}
}