Добрый день! НЕ проходит по третьему условию. НЕ могу понять в чем проблема. Может кто-то объяснить?
package com.javarush.task.task18.task1828;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/*
Прайсы 2
*/
public class Solution {
public static void main(String[] args) throws IOException {
if (args.length > 0) {
ArrayList<Product> productList = new ArrayList<>();
String fileName;
switch (args[0]) {
case "-u": {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
fileName = reader.readLine();
}
try (BufferedReader fileReader = new BufferedReader(new FileReader(fileName))) {
while (fileReader.ready()) {
String oneLine = fileReader.readLine();
productList.add(new Product(
Integer.parseInt(oneLine.substring(0, 8).trim()),
oneLine.substring(8, 38),
Double.parseDouble(oneLine.substring(38, 46).trim()),
Integer.parseInt(oneLine.substring(46, 50).trim())
));
}
}
for (int i = 0; i < productList.size(); i++) {
if (productList.get(i).getId() == Integer.parseInt(args[1])) {
productList.get(i).setProductName(args[2]);
productList.get(i).setPrice(Double.parseDouble(args[3]));
productList.get(i).setQuantity(Integer.parseInt(args[4]));
}
}
// for (Product product : productList) {
// if (product.getId() == Integer.parseInt(args[1])) {
// product.setProductName(args[2]);
// product.setPrice(Double.parseDouble(args[3]));
// product.setQuantity(Integer.parseInt(args[4]));
// }
try (BufferedWriter fileWriter = new BufferedWriter(new FileWriter(fileName))) {
for (int i = 0; i < productList.size(); i++) {
fileWriter.write(String.format("%-8s%-30s%-8s%-4s%n",
productList.get(i).getId(),
productList.get(i).getProductName(),
productList.get(i).getPrice(),
productList.get(i).getQuantity()));
// fileWriter.write("\n");
}
}
// for (Product product : productList) {
// System.out.printf("%-8s%-30s%-8s%-4s%n", product.getId(), product.getProductName(), product.getPrice(), product.getQuantity() );
// }
break;
}
case "-d": {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
fileName = reader.readLine();
}
try (BufferedReader fileReader = new BufferedReader(new FileReader(fileName))) {
while (fileReader.ready()) {
String oneLine = fileReader.readLine();
if (Integer.parseInt(oneLine.substring(0,8).trim()) != Integer.parseInt(args[1]) ) {
productList.add(new Product(
Integer.parseInt(oneLine.substring(0, 8).trim()),
oneLine.substring(8, 38),
Double.parseDouble(oneLine.substring(38, 46).trim()),
Integer.parseInt(oneLine.substring(46, 50).trim())
));
}
}
}
try (BufferedWriter fileWriter = new BufferedWriter(new FileWriter(fileName))) {
for (int i = 0; i < productList.size(); i++) {
fileWriter.write(String.format("%-8s%-30s%-8s%-4s%n",
productList.get(i).getId(),
productList.get(i).getProductName(),
productList.get(i).getPrice(),
productList.get(i).getQuantity()));
}
}
break;
}
}
}
}
public static class Product {
private Integer id;
private String productName;
private Double price;
private Integer quantity;
public Product(Integer id, String productName, Double price, Integer quantity) {
this.id = id;
this.productName = productName;
this.price = price;
this.quantity = quantity;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public Integer getQuantity() {
return quantity;
}
public void setQuantity(Integer quantity) {
this.quantity = quantity;
}
}
}