If it's done right on both the part of the sender and the receiver, it's actually not a "lengthy process". It can be nasty fast and super easy to setup and execute. It's when people either get lazy or try to get "creative" that "flat files" cause any pain. Oddly enough, I blame most of that on people that use and abuse spreadsheets and then let that bleed over into other areas.
I also miss the old days when people actually did care about how my bytes they needed to transmit and did things like sending what some called "packed fields" (1, 2, 3, or 4 byte ints, for example) for dates, times, dollars, and a bunch of other stuff instead of sending all these spreadsheet compatible, human readable, junk. And, yeah... we didn't use Cr/LF or tabs or any of that. We used ASCII characters 28 through 31 and a lot of "fixed width fields". And we never had to work around column headers in the data file or any of that junk because it was either contained in a separate very short meta-data file that contained the "Record Layout" (which even included the datatypes). There was also a separate manifest file that contained all the particulars like number of rows, contact info, etc, etc. And all of those files followed a strict but flexible format that could easily be imported and parsed, as well,
What's absolutely astounding to me is that when people are sending data back and forth between SQL Server instances (if they don't want or need replication, which actually does the same thing), they still do crazy stuff like converting the data to XML or Jason or TSV or CSV or you name the atrocity du jour instead of send the data in SQL "native" format, which has that "packed" stuff I was talking about (it's really all the binary representation of the data/datatype) and it'll auto-magically create a BCP format file (the "Record Layout" meta-data file) for you.
So, getting back to the subject, none of this stuff is harder than it should be. Most of it, if you let gravity happen, is as easy as falling off a proverbial wet moss log. The problem occurs when people get involved. Heh.... funny how that's the case with a whole lot of computer-related stuff. 😀