1) Regular text file 1 Here there is only one word per line. Each line is a separate record and has no bearing on the other lines. Each record can be a string or a number. =================================================== impala sable duiker eland =================================================== 2) Regular text file 2 On line, one record made up of individual fields with a delimiter. Number of fields in each record is the same (regular) =================================================== impala,South Africa,brown,5000,false impala,Botswana,brown,5000,false impala,Mozambique,brown,7000,false ================================================== 3) Additional information is bound to another field. Here the country is bound to the animal type. ZA - Zambia. BO - Botswana. MZ - Mozambique. Here character/String handling is useful to isolate the country information. ================================================== impala ZA,brown,5000,false impala BO,brown,5000,false impala MZ,brown,7000,false ================================================== 4) Separate records are all on one line. Here the delimiter is useful to create the individual animal objects. ================================================== impala ZA,impala BO,impala MZ ================================================== 5) Here one record is spread over more than one line. With no delimiter the whole line is read in and then grouped with its allied data below using relevant code within the while loop. ================================================== impala ZA brown 5000 false impala BO brown 6000 false impala MZ brown 7000 true ===================================================== 6) Here the number of fields per record differ (irregular) The protection field does not apply to Mozambique. Here the while loop must be able to discern the number of fields to avoid the program crashing. ===================================================== sable ZA,black,65000,true sable MZ,grey,75000 sable ZM,black,85000,true duiker ZA,blown,1000,false duiker MZ,brown,2000 duiker ZM,brown,3000,false gemsbok NM,white,50000,true ===================================================== 7) With date, time or with date/time. Here the date must be read in as a string and then parsed to a date object. May need to use DateTimeFormatter.ofPattern(" ") if the default format of "yyyy-MM-dd" is not used. ===================================================== Tayla Wentzel#892#Engineering#2#04/07/2020 Kwagga Kolisi#721#Medical Nomathamsanqa Geldenhuys#371#Security Malcolm Malherbe#279#Security Sibusiso Louw#277#Medical#1#17/07/2020 Francois de Jager#317#Medical Bongi le Roux#461#Security#3#29/12/2020 Jesse Nyakane#397#Engineering#3#22/09/2019 Lamla Weston#270#Flight Siviwe Tywaleni#131#Medical#5#20/10/2018 =================================================== 8) Here individual records are part of a bigger record structure ie 12 animal records made up of 6 shipments. By reading the animal records we can create the shiping records ie 12 animal objects but only 6 shipping objects. Create the animal objects first and then use a another method to generate the shipment records later. =================================================== 1,impala ZA,brown,5000,false 1,impala BO,brown,5000,false 2,impala MZ,brown,7000,false 2,eland ZA,grey,35000,false 2,eland NM,grey,55000,true 2,sable ZA,black,65000,true 3,sable BO,grey,75000,true 4,sable ZM,black,85000,true 4,duiker ZA,blown,1000,false 4,duiker MZ,brown,2000,true 5,duiker ZM,brown,3000,false 6,gemsbok NM,white,50000,true