Не могу понять, как закрыть поток при использовании
Files.lines(Paths.get(filename))...
Пробовал объявлять отдельно:
Stream stream = Files.lines(Paths.get(filename));
...
stream.close;
Тоже не работаетpackage com.javarush.task.task18.task1827;
/*
Прайсы
*/
import java.io.FileOutputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
public class Solution {
public static void main(String[] args) throws Exception {
if (args.length == 0 || !args[0].equals("-c")) {
return;
}
Scanner sc = new Scanner(System.in);
String filename = sc.nextLine();
// String filename = "D:\\1.txt";
String key = args[0];
String productName = String.format("%-30s", args[1]);
String price = String.format("%-8s", args[2]);
String quantity = String.format("%-4s", args[3]);
StringBuilder sb = new StringBuilder();
int newMaxId = Files.lines(Paths.get(filename))
.map(s -> Integer.valueOf(s.substring(0, 8).trim())).max(Integer::compare).get() + 1;
System.out.println(newMaxId);
sb.append("\n").append(newMaxId).append(productName).append(price).append(quantity);
System.out.println(sb.toString());
FileOutputStream fos = new FileOutputStream(filename, true);
fos.write(sb.toString().getBytes());
sc.close();
fos.close();
}
}
