One of the key problems with loading data direct to the brain is that each brain is wired a little differently.
See, with computers, any two computers off the assembly line will be nearly identical, so loading software, etc. into them is simple. You know that certain sections of memory are dedicated to certain uses, etc.
With human brains, though, what we have are computers designed as they go along. While one might be using memory addresses D221A5C-D221A9B for tactile memory, another might well have relegated that information to areas D219F311-D220001. While one brain might have encoded 'red' as a binary pattern of 01101001, another might have it encoded as a trinary pattern of 0122010, while still another might use two codes in tandem. Software compatibility? Damn near nil. At best, we know general areas that are used generally for certain things; but if we read the data in one brain that we think is related to 'scent of a rose', and transfer that data to another brain, even keeping the data in tact... the other brain might instead get 'memory of last sexual contact' or 'scent of a pile of dung'. And if we already knew where in the brain 'scent of a rose' was supposed to exist, and what code it used, why would we need to transfer anything?
Still, there are some real possibilities emerging from current brain research, and there may be only a few dozen types of software to create compatibility engines for...