Валидатор ругается: "Убедись, что ты не используешь статические поля в классе Solution."
как указал в комментариях к коду: я создавал статический метод (выносил в него часть кода, для удобства). Валидатор принял по всем пунктам, кроме последнего " Не используй статические переменные.". Решил что проблема в нем, удалил его. Но проблема не исчезла. Я не использую статических переменных. Разве что: System.in. Но неужели валидатор ругается на него? Но тогда как без него обойтись, тем более все его используют, и в правильном решении тоже... Что тогда не так?
package com.javarush.task.task18.task1825;
import java.io.*;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
/*
Собираем файл
*/
public class Solution {
public static void main(String[] args) throws IOException {
Set<String> partsOfFile = new TreeSet<>();
String partOfFileName;
BufferedReader fileNameReader = new BufferedReader(new InputStreamReader(System.in));
while (!(partOfFileName = fileNameReader.readLine()).equals("end")){
partsOfFile.add(partOfFileName);
}
fileNameReader.close();
FileInputStream fileInputStream;
FileOutputStream fileOutputStream = null;
for (String partOfFile : partsOfFile) {
// Здесь делим имена частей файлов по "." и последнюю часть
// там где [.partN] - обрезаем. Эту часть кода выносил в отдельный статический метод
// Думал проблема в нем, но когда убрал ничего не поменялось
String fileName;
StringBuilder fileNameSB = new StringBuilder();
String[] parts = partOfFile.split("\\.");
for (int i = 0; i < parts.length-1; i++) {
if (i == parts.length-2) fileNameSB.append(parts[i]);
else fileNameSB.append(parts[i]).append(".");
}
fileName = fileNameSB.toString();
fileInputStream = new FileInputStream(partOfFile);
fileOutputStream = new FileOutputStream(fileName, true);
byte[] buffer = new byte[fileInputStream.available()];
while (fileInputStream.available() > 0) {
int i = fileInputStream.read(buffer);
fileOutputStream.write(buffer, 0, i);
}
fileInputStream.close();
}
assert fileOutputStream != null;
fileOutputStream.close();
}
}