package com.javarush.task.task18.task1814;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
/*
UnsupportedFileName
*/
public class TxtInputStream extends FileInputStream {
public TxtInputStream(FileInputStream fileName) throws IOException {
super(String.valueOf(fileName));
if (!fileName.toString().endsWith(".txt")){
super.close();
throw new UnsupportedEncodingException();
}
}
public static void main(String[] args)throws IOException{
TxtInputStream file = new TxtInputStream(new FileInputStream("E:\\3.txt"));
}
}
Выдает ошибку: Exception in thread "main" java.io.FileNotFoundException: java.io.FileInputStream@13b6d03 (Не удается найти указанный файл)
Хотя путь 100 раз проверил и в предыдущей задаче все работает именно с ним. В стеке указывает на строчку super(String.valueOf(fileName));
Обьясните что не так я сделал?Дмитрий Сидоров
28 уровень
Пытаюсь сделать так, но вылетает ошибка.
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Дмитрий Сидоров
3 августа 2018, 09:10решение
Я разобрался. Оказывается я уже обернул один класс в другой и при этом я пытался провернуть подобную конструкцию TxtInputStream file = new TxtInputStream(new FileInputStream("E:\\3.txt"));
а надо было просто TxtInputStream file = new TxtInputStream("E:\\3.txt"); И соотвертсвенно подправил конструктор класса. В итоге смысл обертики, как я понял, это когда мы обращаемся к одному классу, мы даже не подозреваем что он делегирует все другому классу, который мы обернули и при этом может еще и переопределить его методы.
+3
Дмитрий Сидоров
2 августа 2018, 13:59
Да дело в том, что код вообще не запускается. Мне кажется, что это глюк какой то.
0
DimaExpert
2 августа 2018, 13:40
Какое исключение должно вызываться?
0