Добрый день, Коллеги!
Прошу подсказать, где могут быть проблемы в моем коде, ведь даже скопированный и лекции код считывания имени файла валидатор не пропускает?
Как и не пропускает и два других пункта, которые на компьютере выполняются корректно! ((
package com.javarush.task.task18.task1803;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
/*
Самые частые байты
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
//Считал полное название файла;
FileInputStream inputStream = new FileInputStream(fileName);
ArrayList<Integer> bites = new ArrayList<>();
while (inputStream.available() > 0) {
int data = inputStream.read();
bites.add(data);
}
inputStream.close();
//Записал зодержимое файла в массив и закрыл поток;
int friquancy = 0;
int point = 0;
while (point < bites.size()) {
int count = Collections.frequency(bites, bites.get(point));
point++;
if (count > friquancy) {
friquancy = count;
}
}
//Определил максимальное количество повторений байтов в массив;
point = 0;
ArrayList<Integer> bitesMax = new ArrayList<>();
while (point < bites.size()) {
int count = Collections.frequency(bites, bites.get(point));
if (count == friquancy) {
bitesMax.add(bites.get(point));
}
point++;
}
//Перенес байты с максимальным количеством повторений в новый массив bitesMax;
int point1 = 0;
while (point1<=bitesMax.size()) {
if(bitesMax.size()==1){break;}
else {
if (bitesMax.get(point1).equals(bitesMax.get(point1 + 1))) {
bitesMax.remove(point1);
point1 = 0;
} else {
if (bitesMax.size() == 1) {
break;
}
point1++;
}
}
}
//Удалил все повторяющиеся байты из нового массива;
point1 = 0;
while (point1<=bitesMax.size()){
System.out.print(bitesMax.get(point1) + " ");
if (bitesMax.size() == 1) {
break;
}
else {
point1++;}
}
//Вывел в консоль уникальные байты через пробел;
}
}