Добрый вечер коллеги!)
По самой задаче вопросов нет, она решена:
import java.io.*;
public class Solution {
public static void main(String[] args) throws Exception {
FileInputStream inputStream = new FileInputStream(args[0]);
int myChar;
int count = 0;
while (inputStream.available()>0){
myChar = inputStream.read();
if(myChar>=97 && myChar<=122 || myChar>=65 && myChar<=90){
count++;
}
}
inputStream.close();
System.out.println(count);
}
}
Вопрос в следующем, есть у нас допустим кодировка UTF-8, где символ занимает от 1 до 4 байт. Считывание текста в таком случае с помощью FileInputStream и последующая запись или вывод куда-либо выдает абракадабру для символов занимающих более 1 байта (что понятно и логично), т.е.
while (inputStream.available()>0){
myChar = inputStream.read();
System.out.print((char)myChar);
}
}
для кириллицы получим что угодно, только не кириллицу))
Мы можем, конечно, считывать посимвольно через FileReader, но вопрос именно по FileInputStream. Можно ли это сделать через считывания побайтово? И имеет ли это практическое применение в реальных проектах или работают через Reader?
Спасибо;)