On POSIX systems, streams are special file descriptors. Windows has its own err.. thing, but they are file descriptors there as well. Examples of special files on Windows are the standard streams stdout, stdin and stderr, as well as serial ports like COMn, which can be opened with OpenFile(). On Linux, special files are found under /proc and /dev. /proc/cpuinfo will read back information about your CPU. /dev/sdX are handles to your physical disks, etc.
So what's a special file? It's a file handle, but the contents isn't stored on disk. The file handle is just an interface to the kernel. On POSIX systems you use open(), close(), read(), write(), and ioctl() to talk to the kernel via the file descriptor. Even a file descriptor to the whole memory map is available, under /dev/mem. You open this and pass to mmap() if you want to map a memory region for example.
Unfortunately Microsoft Windows does not handle file descriptors at this level. I wish Windows was more POSIX-like.