Есть 2 кода, на которых я разницы не увидел вообще, но мой код так валидацию и не прошел: чужой:
package com.javarush.task.task18.task1814;
/ * UnsupportedFileName
 Измени класс TxtInputStream так, чтобы он работал только с txt-файлами (*.txt).*/
import java.io.FileInputStream;
import java.io.IOException;

/*
UnsupportedFileName
*/

public class TxtInputStream extends FileInputStream {

    public TxtInputStream(String fileName) throws UnsupportedFileNameException, IOException {
        super(fileName);
        if( !fileName.endsWith(".txt")) {
            super.close();
            throw new UnsupportedFileNameException();
        }
    }

    public static void main(String[] args) {
    }
}
--------------------------------------------------------------------------------------------------------------------------------- и мой:
package com.javarush.task.task18.task1814;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;

/*
UnsupportedFileName
*/

public class TxtInputStream extends FileInputStream{
    public TxtInputStream(String fileName) throws IOException, UnsupportedFileNameException {
        super(fileName);
        Path path = Paths.get(fileName);
        if (!path.endsWith(".txt")){
            super.close();
            throw new UnsupportedFileNameException();
        } else {
            return;

        }
    }

    public static void main(String[] args) {
    }
}