Я недавно изучал пакет java.io, и мне было интересно, где я могу найти точные процессы, которые выполняют абстрактные классы внутри InputStream и OutputStream.Абстрактные методы InputStream и OutputStream
Я ослеплен, потому что, по крайней мере, согласно исходному коду, основные методы являются абстрактными (например, InputStream.read()
и OutputStream.write(int b)
). Меня особенно беспокоят тесные методы, чьи javadocs явно говорят, что они ничего не делают:
Закрывает этот поток ввода и освобождает любые системные ресурсы, связанные с потоком.
close
способInputStream
ничего не делает.
Ну, входные потоки, очевидно, записываются при чтении выходных потоков, и, безусловно, close()
должен выполнять сброс и освобождение ресурсов.
Кто-нибудь может дать мне объяснение?
Действительно, многие потоки наследуют эти абстрактные классы. Однако, не используя какой-либо наследуемый класс, работа 'inputstream' и' outputstream' работают и что-то делают. Они действительно могут отправлять и получать байты. Я спрашиваю об этой основной фазе процесса, без каких-либо расширенных классов. :) Есть идеи? – Ruluk
@ Ruluk, если вы хотите использовать простые 'InputStream' и' OutputStream', вы просто не можете, так как они являются «абстрактными» классами. Вы ** всегда ** должны использовать реализацию этих классов. Обратите внимание, что класс реализации содержит реальную логику/работу. –
Спасибо за информацию! Я думал, что он что-то сделал, потому что я использовал их непосредственно в одном учебнике, но теперь я проанализировал дальше, и они просто базовые потоки, которые ссылаются на класс потомства. – Ruluk