I would generally avoid using text files mainly because you can get issues with reading/writing the same file at the same time (well, that depends on your implementation I guess). In general though the reason I use something like SQL is that I can read write overwrite whatever whenever and I know that I'm not going to get corrupt data.
Since file access is all synchronized, data will not be corrupted. Worst case scenario is at the moment the file is being accessed for writing, another thread handling new users tries to read the file for login and throws an exception (which should be easy to handle, just wait for file access).
You should have a separate thread for handling file saves/reads by the way, since you don't want to be slowing down your main thread (depending on how many users you are going to have, if you're saving thousands of files in a short time it can get slow. you should queue requests to save on a single/multi-threaded handler depending on how many users. i don't think you intend to have a lot though?)
And as someone said before, you should really just keep the player data in memory and save on logout.