В Java IO мы используем Stream и Reader, а в NIO мы используем Channel, Selector.
Они оба делают одно и то же, но структура совершенно другая.
Итак, почему они не пишут новый Stream, такой как "AsyncStream" или Reader, как "AsyncReader", чтобы реализовать то, что NIO реализовало. Если это так, у нас есть только одна структура, и она прекрасна.
Итак, почему Java IO не может реализовать чтение async? Каковы трудности для реализации асинхронного чтения с использованием Java IO?
Или в чем преимущество написания новой структуры вместо использования существующей?