For a quick solution, if your data structures (and, of course, the way they are accessed) are simple enough, read and write data to files using your own format (for example, binary, XML, ...) or possibly standard formats such as iCalendar may be more suitable for your problem. Libraries such as iCal4J can help you with this.
Given the more general aspects of your question, this is a more general topic, but you can read about databases (relational or not). Whether you want to use them or not, it will depend on the total complexity of your application.
In Java, you can use multiple relational databases using JBDC . This should allow you to connect to the relational database ( SQL ) of your choice. Some of them work in their own server application (for example, MS SQL, Oracle, MySQL, PostgreSQL), but some of them can be embedded in your Java application, for example: JavaDB (version of Apache Derby DB), Apache Derby DB , HSQLDB , H2 or SQLite.
These embedded SQL databases will essentially store data on files on the same computer that the application is running in (in a format specific to them), but allow data to be used using SQL queries. Benefits include a certain structure of your data (which you create when developing tables and possible restrictions) and (with the support of the engine) the ability to handle parallel access through operations . This can be useful even in a desktop application.
This may mean a learning curve if you need to learn SQL, but it should save you from having to process the details of determining your own file format. Providing a structure to your data through SQL (often known by other developers) may be better than defining your own data structures, which you still have to save and read from your own files.
In addition, if you want to directly access objects without knowing about SQL, you might be interested in Object-Relational Mapping such as Hibernate . Their goal is to hide SQL data from you, being able to store / load objects directly. Not everyone likes them, and they also have their own learning curve (which may entail learning some details about how SQL works). Their pros and cons could be discussed in detail (there are questions about this on StackOverflow or even DBA.StackExchange).
There are also other forms of databases, such as XML databases or Semantic-Web / RDF databases, that may or may not suit your needs.