Read is not a problem.
Write always has severe restrictions for small memory since you can't create or extend files without a 512 byte buffer.
You can rewrite selected portions of an existing file assuming each write starts on a 512 byte boundary and the write record will be filled to the next 512 byte boundary, usually with zeros.