Как использовать файл в банковском управлении в Java? - PullRequest
0 голосов
/ 16 апреля 2019

Я хочу использовать файл для хранения информации об учетной записи в Java, а также мне нужно перечислить все учетные записи и распечатать список.

    import java.util.Scanner;
    public class java{
          public static void main(String[] args) {
Scanner s = new Scanner(System.in);
Bank myBank = new Bank();

int choice = 0;

do {

    System.out.println("********************************************************");
    System.out.println();
    System.out.println("1) Open a new bank account");
    System.out.println("2) Search account and Print short account information");
    System.out.println("3) Withdraw to bank account");
    System.out.println("4) Deposit to a bank account");
    System.out.println("5) Quit");
    System.out.println("********************************************************");
    System.out.println();
    System.out.print("Enter choice [1-6]: ");
    choice = s.nextInt();
    switch (choice) {
        case 1: System.out.println("Enter a customer name");
                String cn = s.next();
                System.out.println("Enter a opening balance");
                double d = s.nextDouble();
                System.out.println("Account was created and it has the following number: " + myBank.openNewAccount(cn, d));
                break;
        case 2:System.out.println("Enter a account number");
                int anum = s.nextInt();
                myBank.SearchAndPrintAccountInfo(anum);
                break;

        case 3: System.out.println("Enter a account number");
                int acn = s.nextInt();
                System.out.println("Enter a withdraw amount");
                double wa = s.nextDouble();
                myBank.withdrawFrom(acn, wa);
                break;
        case 4: System.out.println("Enter a account number");
                int an = s.nextInt();
                System.out.println("Enter a deposit amount");
                double da = s.nextDouble();
                myBank.depositTo(an, da);
                break;


       case 5: 
                return;


      default: System.out.println("Invalid option. Please try again.");


    }
  }
 while (choice != '6');
 }

    static class Bank {
   private BankAccount[] accounts;     // all the bank accounts at this bank
 private int numOfAccounts;      // the number of bank accounts at this bank

  //Constructor: A new Bank object initially doesn’t contain any accounts.
public Bank() {
accounts = new BankAccount[100];
numOfAccounts = 0;
}

// Создает новый банковский счет, используя имя клиента и начальный балансзадается в качестве параметров // и возвращает номер учетной записи этой новой учетной записи.Он также добавляет эту учетную запись в список счетов // вызывающего объекта Банка.

     public int openNewAccount(String customerName, double openingBalance) 
    {

BankAccount b = new BankAccount(customerName, openingBalance);
accounts[numOfAccounts] = b;
numOfAccounts++;
return b.getAccountNum();
 }

  // Withdraws the given amount from the account whose account number is given. If the account is
   // not available at the bank, it should print a message.
   public void withdrawFrom(int accountNum, double amount) {
   for (int i =0; i<numOfAccounts; i++) {
    if (accountNum == accounts[i].getAccountNum()  ) {
        accounts[i].withdraw(amount);
        System.out.println("Amount withdrawn successfully");
        return;
    }
}
System.out.println("Account number not found.");
}

 // Deposits the given amount to the account whose account number is given. If the account is not
    // available at the bank, it should print a message.
     public void depositTo(int accountNum, double amount) {
   for (int i =0; i<numOfAccounts; i++) {
    if (accountNum == accounts[i].getAccountNum()  ) {
        accounts[i].deposit(amount);
        System.out.println("Amount deposited successfully");
        return;
    }
}
System.out.println("Account number not found.");
   }

     // Prints the account number, the customer name and the balance of the bank account whose
     // account number is given. If the account is not available at the bank, it should print a message.
   public void SearchAndPrintAccountInfo(int accountNum) {
     for (int i =0; i<numOfAccounts; i++) {
            if (accountNum == accounts[i].getAccountNum()  ) {
                System.out.println(accounts[i].getAccountInfo());
                return;
            }
        }
System.out.println("Account number not found.");
   }


static class BankAccount{

   private int accountNum;
   private String customerName;
   private double balance;
   private double[] transactions;

   private  static int noOfAccounts=0;

   public String getAccountInfo(){
       return "Account number: " + accountNum + "\nCustomer Name: " + customerName + "\nBalance:" + balance +"\n";
   }



   public BankAccount(String abc, double xyz){
     customerName = abc;
     balance = xyz;
     noOfAccounts ++;
     accountNum = noOfAccounts;

   }

public int getAccountNum(){
    return accountNum;
}



public void deposit(double amount){

    if (amount<=0) {
        System.out.println("Amount to be deposited should be positive");
    } else {
        balance = balance + amount;

    }
}
public void withdraw(double amount)
{
    if (amount<=0){
         System.out.println("Amount to be withdrawn should be positive");
     }
    else
    {
        if (balance < amount) {
            System.out.println("Insufficient balance");
        } else {
            balance = balance - amount;

        }
    }
}

}//end of class
 }

1 Ответ

0 голосов
/ 16 апреля 2019

Вы можете использовать следующие методы. Но сначала вам нужно создать txt-файлы самостоятельно в папке, где запущена ваша программа (см. Редактирование).

Ваш импорт:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;

А ваши методы:

public static void saveToFile() {
    try {
        FileWriter saveUsrFile = new FileWriter("username.txt");
        saveUsrFile.write("\n");
        for (int i = 0; i < username.length; i++) {
            saveUsrFile.write(username[i] + "\n");
        }
        saveUsrFile.write("\n");
        saveUsrFile.close();

        FileWriter savePwFile = new FileWriter("password.txt");
        savePwFile.write("\n");
        for (int i = 0; i < password.length; i++) {
            savePwFile.write(password[i] + "\n");
        }
        savePwFile.write("\n");
        savePwFile.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

И чтобы прочитать это в массив:

public static void readFromFile() throws Exception {
    BufferedReader saveUsrFile, savePwFile;
    try {
        saveUsrFile = new BufferedReader(new FileReader("username.txt"));
        saveUsrFile.readLine();
        for (int i = 0; i < username.length; i++) {
            username[i] = saveUsrFile.readLine();
        }
        saveUsrFile.readLine();

        savePwFile = new BufferedReader(new FileReader("password.txt"));
        savePwFile.readLine();
        for (int i = 0; i < password.length; i++) {
            password[i] = savePwFile.readLine();
        }
        savePwFile.readLine();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

}

РЕДАКТИРОВАТЬ: Если вы также хотите создать текстовые файлы, вам нужно импортировать. Файл и вы можете использовать этот код:

public static void checkForFile() {
    if(!(username_.exists())) {
        try {
            username_.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    if(!(password_.exists())) {
        try {
            password_.createNewFile();
        } catch(IOException f) {
            f.printStackTrace();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...