Добрый день.
Прошу помощи:
по 3 пункту просто не понимаю, что он хочет, вроде все условия в 18 строке проверяю
по 4 пункту перевод на новую строку прописал в FileWriter.
package com.javarush.task.task18.task1827;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/*
Прайсы
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String fileName = br.readLine();
br.close();
if (args.length < 4 | args.length == 0 | !args[0].equals("-c")) {
return;
}
try (PrintWriter pw = new PrintWriter(new FileWriter(fileName, true))) {
String id = setSpace(getId(fileName), 8);
StringBuilder productNameEnter = new StringBuilder();
for (int i = 1; i < args.length - 2; i++) {
productNameEnter.append(args[i]).append(" ");
}
String productName = setSpace(productNameEnter.toString(), 30);
String price = setSpace(args[args.length - 2], 8);
String quantity = setSpace(args[args.length - 1], 4);
pw.println(id + productName + price + quantity);
}
}
public static String setSpace(String s, int realSize) {
String validName;
if (s.length() > realSize) {
validName = s.substring(0, realSize);
} else {
validName = String.format("%-" + realSize + "s", s);
}
return validName;
}
public static String getId(String fileName) throws IOException {
List<Integer> idList = new ArrayList<>();
int intId, returnID=1;
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
while (reader.ready()){
intId = Integer.parseInt(reader.readLine().substring(0,8).trim());
idList.add(intId);
returnID = Collections.max(idList)+1;
}
}
return "" + returnID;
}
}