A simple console-based notes management application written in Java that demonstrates file I/O operations using FileWriter and FileReader/BufferedReader.
- Create Notes: Write new notes with custom titles
- Append to Notes: Add content to existing notes
- List All Notes: View all saved note files
- Read Notes: Display the contents of any note
- Delete Notes: Remove notes with confirmation
- Search Notes: Find text across all notes (case-insensitive)
- Auto Directory Creation: Creates
notesfolder automatically - Safe Filenames: Sanitizes titles to prevent filesystem issues
- Java JDK 8 or higher
- Command line access (PowerShell/Terminal)
# Compile the Java file
javac NotesApp.java
# Run the application
java NotesApp
The main menu showing all available options
Creating a new note with title and content
Displaying the contents of a selected note
Searching for text across all notes
- Create new note (overwrite if exists): Enter a title, then type content line by line. End with a single dot
.on its own line - Append to existing note: Same as create, but adds content to existing file
- List all notes: Shows all
.txtfiles in the notes directory - Read a note: Select and display a note's contents
- Delete a note: Remove a note file (with confirmation)
- Search notes: Find text within all notes (case-insensitive matching)
- Exit: Close the application
- Choose option
1to create a new note - Enter title:
My First Note - Type your content (multiple lines supported)
- End with
.on a new line - Use option
3to list your notes - Use option
4to read your note back
- FileWriter: Used for writing and appending content to note files
- FileReader + BufferedReader: Used for reading note contents efficiently
- File Operations: Automatic directory creation, file listing, deletion
- Error Handling: Try-catch blocks for all file operations
project-folder/
├── NotesApp.java # Main application file
├── README.md # This file
└── notes/ # Auto-created directory for note files
├── note1.txt
├── note2.txt
└── ...
- File I/O Operations: Reading and writing text files
- Directory Management: Creating and managing file directories
- User Input Handling: Scanner for console input
- String Processing: Filename sanitization and text searching
- Exception Handling: Proper error handling for file operations
- Menu-driven Interface: Console-based user interaction
✅ Working .java file using FileReader/FileWriter
✅ Text-based notes manager functionality
✅ File read/write operations demonstrated
✅ User-friendly console interface
✅ Error handling and input validation
- Export all notes to a single file
- Import notes from text files
- Note categories/tags
- Date/time stamps for notes
- Backup and restore functionality
- Configuration file support
This project is created for educational purposes to demonstrate Java File I/O operations.
Created as part of Java File I/O learning exercises
