Не пойму, какие еще потоки нужно указать.
Есть идеи?
package com.javarush.task.task18.task1821;
/*
Встречаемость символов
*/
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
public class Solution {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream(args[0]); //новый поток для чтения
byte [] buffer = new byte[fis.available()];
while (fis.available()>0){
fis.read(buffer);
}
Arrays.sort(buffer); //сортировка по порядку ascii
ArrayList<Byte> byteList = new ArrayList<>();
byteList.add(buffer[0]);
for (int i = 1; i <buffer.length ; i++) { //вносим только уникальные значения в список
if (buffer[i] != buffer[i-1]) {
byteList.add(buffer[i]);
}
}
ArrayList<Integer> counts = new ArrayList<>();
int count = 0;
for (int i = 0; i < byteList.size(); i++) { // вычисляем частоту символов
for (int j = 0; j < buffer.length; j++) {
if (byteList.get(i).equals(buffer[j]))
count++;
}
counts.add(count);
count = 0;
}
for (int i = 0; i < byteList.size(); i++) {
byte b = (byte) (byteList.get(i)); //приводим Byte к byte
System.out.println((char) b + " "+ counts.get(i)); //вывод в консоль
}
fis.close(); //поток закрыт
}
}