You see, before you overwrite the actual file with the new content, you should wrote the new content in a separate temporary file first. That way, when your app detect corrupted files on startup due to power loss, you can program your app to look for the temporary files and write them to the main files if they pass your data validation.
... and before long, you'll reinvent database servers but shittier.
... and before long, you'll reinvent database servers but shittier.