Если удалить реализацию сортировки и подсчета,
package com.javarush.task.task18.task1821;
/*
Встречаемость символов
*/
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
public class Solution {
public static void main(String[] args) throws IOException {
try (FileInputStream fileInputStream = new FileInputStream(args[0])) {
ArrayList listFromFile = new ArrayList();
while (fileInputStream.available() > 0) {
listFromFile.add(fileInputStream.read());
}
fileInputStream.close();
}
}
}
то требования
Создай поток для чтения из файла, который приходит первым параметром в main.
Поток для чтения из файла должен быть закрыт.
ВЫПОЛНЯЮТСЯ!!!
Как объяснить и исправить данную трагедь?
package com.javarush.task.task18.task1821;
/*
Встречаемость символов
*/
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
public class Solution {
public static void main(String[] args) throws IOException {
try (FileInputStream fileInputStream = new FileInputStream(args[0])) {
ArrayList listFromFile = new ArrayList();
while (fileInputStream.available() > 0) {
listFromFile.add(fileInputStream.read());
}
Collections.sort(listFromFile);
int countUnic = 1;
for (int i = 0; i < listFromFile.size() - 1; i++) {
if (listFromFile.get(i).equals(listFromFile.get(i + 1))) {
countUnic++;
} else {
System.out.println((String.valueOf(Character.toChars((Integer) listFromFile.get(i))) + " " + countUnic));
countUnic = 1;
}
}
System.out.println((String.valueOf(Character.toChars((Integer) listFromFile.get(listFromFile.size() - 1))) + " " + countUnic));
fileInputStream.close();
}
}
}