A Java console application that simulates a simple banking system using text files for data persistence. This project supports creating accounts, depositing, withdrawing, balance checks, login, and transaction history — all stored and retrieved from .txt files.
It’s a great demonstration of file handling, OOP basics, console UI, and data persistence without a database, making it ideal for a portfolio or resume.
This application mimics basic bank operations such as:
- Creating a new bank account
- Logging in using account credentials
- Deposits and withdrawals
- Balance inquiries
- Recording transactions to text files
- Keeping user data and credentials in text files
All data is stored in a local db folder using .txt files (e.g., credentials.txt, balanceDB.txt, userDB.txt) for persistence. ([GitHub][1])
✅ Text file based storage — No database required ✅ Account creation & login ✅ Deposit & withdraw functionality ✅ Balance inquiry ✅ Transaction record keeping ✅ Incremental account number generation using last saved entry ✅ Modular design using multiple Java classes
This project shows you:
✔️ How to read from and write to text files in Java
✔️ How to model bank operations without a database
✔️ How to design a real‑world console UI logic
✔️ How to use Scanner, File, and FileWriter/Reader classes effectively
✔️ Basic account and transaction management logic
-
Launch the app
-
Choose to either create an account or login
-
Enter details such as name, account information, and initial balance
-
The system will:
- Write user info into
userDB.txt - Write credentials into
credentials.txt - Write starting balance into
balanceDB.txt
- Write user info into
-
Once logged in, users can:
- Deposit money
- Withdraw money
- Check balance
- Review transaction history
Data is read and written using Java file I/O operations to persist between executions. ([GitHub][1])
Bank‑Managment‑System/
├── db/
│ ├── credentials.txt
│ ├── balanceDB.txt
│ ├── userDB.txt
│ └── other text files
├── src/
│ ├── Main.java
│ ├── Login.java
│ ├── Creation.java
│ ├── Transaction.java
│ ├── BalanceEnquiry.java
│ ├── AccountDetails.java
│ └── Deletion.java
├── .gitignore
├── README.md
└── .project / .classpath (Eclipse config)
Welcome to Bank Management System!
1. Login
2. Create Account
3. Exit
Enter choice: 2
Enter your name: John Doe
Account created successfully! Your account no is: 1001
Login with your account number and password
Logged in!
1. Deposit
2. Withdraw
3. Balance
4. Transaction History
| Concept | Demonstrated |
|---|---|
| File Handling | Reading and writing .txt files |
| OOP | Classes for different bank tasks |
| Input Validation | Ensuring correct user input |
| Incremental Account Numbers | By reading last saved entry |
| Modular Code | Separate classes for logic |
- Clone the repository
git clone https://github.com/lijoraj-p-r/Bank-Managment-System
-
Open in Eclipse
- Import as an existing Eclipse project
- Ensure the
dbfolder is in project root
-
Run
Main.java- Follow the console prompts
Here are some ideas to make it even better:
✔️ Add user authentication with hashed passwords ✔️ Convert to a GUI application using Swing or JavaFX ✔️ Store data in a real database (e.g., MySQL) ✔️ Add exception handling for I/O errors ✔️ Extend transaction history reporting