For permission issues, I encourage you to use an external storage such as an SD card.

Environment.getExternalStorageDirectory()

you can create a folder there and save your files. You can also use "/data/local/" if your system permits user files to be saved there.
You can refer to this page regarding the various ways you can save files to internal and external storage,

You can also Use Serializable interface for reading and writing serializable objects. In fact, I used this once when I tried to write data values directly to files instead of any traditional databases (In my very first undergraduate years, I was not familiar with databases). A good example is here,