Ну вот зачем вы издеваетесь над обучающимися? 1. Заставляете использовать FileReader, который не понимает кодировок. 2. Завтавляете использовать кириллицу в файлах Программа работает. Без проблем работает с латиницей и с косяками работает с кириллицей. В IDE приходится переключать UTF-8/1251 после каждого прогона, иначе что-то где-то слетает и "файл" становится не равным "файл", соответственно и программа идет в разнос. Проверочный файл: файл вид В В файл я занесу я занесу вид В вид этот файл строку я сочиню и в файл я положу и в файл строку я положу in file we trust file type is abscent V type is file B V type are files string is not a file результат1: В файл я занесу я занесу вид строку я сочиню и в файл я положу in file we trust file type is abscent string is not a file результат2: файл вид В В файл я занесу я занесу вид В вид этот файл строку я сочиню и в файл я положу и в файл строку я положу in file we trust file type is abscent string is not a file Все, что меняется между результатами - еще один пргогон программы без всяких изменений. Кодировку меняю через File -> Other Settings -> Default Settings -> File Encodings -> Global Encoding Стоит ли писать, что валидатор не признает программу рабочей? P.S. Почему-то не обновляется код моей программы...
import java.io.*;
import java.util.ArrayList;
import java.util.List;

/*
Ищем нужные строки
*/

public class Solution {
    public static List<String> words = new ArrayList<String>();

    static {
        words.add("file");
        words.add("type");
        words.add("V");
        words.add("B");
        words.add("string");
        words.add("строку");
        words.add("и");
        words.add("файл");
        words.add("вид");
        words.add("В");
    }

    public static void main(String[] args) throws IOException{

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String fileName = reader.readLine();
        reader.close();

        BufferedReader br = new BufferedReader(new FileReader(fileName));
//        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), "cp1251"));
        int number = 0;

        while (br.ready()) {
            String str = br.readLine();
            String[] tmp = str.split(" ");
            for (int i = 0; i < tmp.length; i++) {
                for (int j = 0; j < words.size(); j++) {
                    if (tmp[i].equals(words.get(j))) {
                        number++;
                    }
                }
            }
            if (number < 3) {
                System.out.println(str);
            }
            number = 0;
        }
        br.close();
    }
}