Actually I cannot answer this, but I can think freely ...
.. both Java-File-IO and .Net must use OS operations substitution to access files, and file access is always associated with IO, not CPU binding. This means that drives are slower than CPU and memory.
What this will mean is that Java-File-IO and .Net should be the same in terms of performance.
When it comes to Socket communications, Java has done a terrible job and actually just ignored the Posix standard and did not use the "select" OS call. This was fixed in Java NIO with the introduction of "channels", which no more than actually supports the underlying architecture. Before you needed to allocate a thread for each socket that you read, there was a terrible loss of resources.
Since .NET is newer, then Java, I would believe that they never fell into this trap and did not support it from the very beginning. But I did not use .Net, so I can say, I canβt guess.
With regard to Socket communications, in both cases, Java-NIO and .Net System.IO must both be network-connected before they transfer to the CPU in any way. Therefore, I do not think that someone would be faster than another.
source share