No, I am not opening and closing inside the loop. I open the file outside the loop via en event using "Open Data Storage" VI, and then I am using the "Write Data" VI (TDM format, writes 2 files, one XML and one binary if I understand correctly the format). The Write Data is used inside an acquisition loop that collects 7 (or 9) channels at 5KHz (500 samples per loop, so 0.1sec of data per loop) but then resamples two of these channels down to 400Hz and 50Hz respectively, the rest stay at 5KHz. So yes, I am streaming the data and I assume it writes it in blocks on each loop (not byte at a time).
Does this help clarify?