プログラムをテキストファイルから読み取らせようとすると、少し混乱します。テキストファイルは、クライアントID、クライアントタイトル、クライアントイニシャル、クライアントの名前、クライアントアドレス、クライアントの町または市、クライアントの郵便番号、ポリシーの発行年、およびポリシー番号で構成されます。残りのフィールドは、ポリシー番号が属するポリシーのタイプに対応しています。各フィールドを区切るために、区切り文字を使用するようにアドバイスされました。
テキストファイルは次のようになります。
IC-x00042W/Ms/LQ/Bethea/205, Willis Road/Bolton/BO5 1DQ/2007/C02000007/10000/0.5/2008/B27100037/150000/0.3/2011/V30200319/2000/21/1/0#
IC-x00033D/Mr/R/Bowie/119, Thatcher Way/Glasgow/GL9 5SX/2008/L09000016/50000/45/2/2009/C74100008/8000/0.6/2012/B05300001/125000/0.5#
IC-x00013A/MS/GRV/Blackwell/209, Drunk Road/Hawick/HK8 1MY/2013/B09000009/225000/0.1/2011/C14100014/20000/0.1/2010/V63200304/12000/43/5/1#
これまでのところ、次のようなものがあります:(すべてのクライアントの個人情報を含むNameというクラスと、すべてのアドレスの詳細を含むaddressというクラスがあります):
final String CLIENT_DELIMITER = "#";
final String ITEM_DELIMITER = "/";
Scanner fileScan = null;
Scanner clientScan = null;
/*
* ********************************************************************
*
* Opening the text file and reading from the text file. If the
* File cannot be read then an error is thrown
*
* ********************************************************************
*/
try {
fileScan = new Scanner(inputFile);
} catch (Exception e) {
System.out.println(e);
}
//********************************************************************
String nxtClient = null;
//Define classes
ClientDetailsList clientInfo = null;
Name clientNameDetails = null;
Address clientFullAddress = null;
PolicyList clientPolicies = null;
ClientDetailsList clientDetails = null;
ClientDetailsList clientCollection = new ClientDetailsList();
fileScan.useDelimiter(ITEM_DELIMITER);
/*
* ******************************************************************
* Scan for client details from the text file
* ******************************************************************
*/
while (fileScan.hasNext()) {
// Input the data for the next Client
nxtClient = fileScan.next().trim();
clientScan = new Scanner(nxtClient);
clientScan.useDelimiter(ITEM_DELIMITER);
//Client Variables
String clientID = null;
clientScan.useDelimiter(ITEM_DELIMITER);
String clientTitle = null;
String clientInitials = null;
String clientSurname = null;
//Reads in details from name
clientID = fileScan.next().trim();
clientTitle = fileScan.next().trim();
clientInitials = fileScan.next().trim();
clientSurname = fileScan.next().trim();
//Construct Name
clientNameDetails = new Name(clientTitle, clientInitials, clientSurname);
String clientAddress = null;
String clientTownOrCity = null;
String clientPostCode = null;
String policyDetails = null;
//Reads in details from address
clientAddress = fileScan.next().trim();
clientTownOrCity = fileScan.next().trim();
clientPostCode = fileScan.next().trim();
//Construct Address
clientFullAddress = new Address(clientAddress, clientTownOrCity, clientPostCode);