Depending on how complex the information is that you want to save you might find sqlite to be very useful. The database is saved as one file and you can access it using SQL Queries. Its super lightweight and if you move the game to android, I think most user data is stored that way anyway.
If sqlite isn't you cup of tea, I would use xml. its very standard and Java has a library for parsing it. If you need to low-level encrypt some data or if you have binary data like an image, maybe base64 that data and throw it into a CDATA tag.
here is an example that I found on another stackoverflow post that uses CDATA/base64:
<?xml version="1.0" encoding="windows-1252"?>
<mediafiles>
<media media-type="image">
<media-reference mime-type="image/jpeg"/>
<media-object encoding="base64"><![CDATA[/9j/4AAQ[...snip...]P4Vm9zOR//Z=]]></media-object>
<media.caption>What up</media.caption>
</media>
</mediafiles>