Я на самом деле не могу ответить на это, но я могу свободно мыслить ...
.. и Java-File-IO, и .Net должны использовать нижележащие операции ОС для доступа к файлу, а доступ к файлу всегда связан с вводом-выводом, а не с процессором. Это означает, что диски работают медленнее, чем процессор и память.
Что это будет означать, так это то, что Java-File-IO и .Net должны быть одинаковыми с точки зрения производительности.
Когда дело касается связи через сокет, Java проделала ужасную работу и фактически просто проигнорировала стандарт Posix и не использовала вызов ОС «select». Это было исправлено в Java NIO с введением «каналов», которые являются не чем иным, как поддержкой поддерживающей архитектуры. Прежде чем вам нужно было выделить поток для каждого сокета, на котором вы читали, ужасная трата ресурсов.
Поскольку .Net новее Java, я бы поверил, что они никогда не попадали в эту ловушку и с самого начала добавили поддержку для этого. Но я не использовал .Net, поэтому могу сказать, что не могу догадаться. 1009 *
Относительно связи через сокеты в обоих случаях Java-NIO и .Net System.IO оба должны быть связаны с сетью, прежде чем они все равно будут связаны с ЦП. Поэтому я не думаю, что один будет быстрее другого.