All language subtitles for 048 Contacts – Part 6, Tasks 1-3 (Solution)_en
Afrikaans
Akan
Albanian
Amharic
Arabic
Armenian
Azerbaijani
Basque
Belarusian
Bemba
Bengali
Bihari
Bosnian
Breton
Bulgarian
Cambodian
Catalan
Cebuano
Cherokee
Chichewa
Chinese (Simplified)
Chinese (Traditional)
Corsican
Croatian
Czech
Danish
Dutch
English
Esperanto
Estonian
Ewe
Faroese
Filipino
Finnish
French
Frisian
Ga
Galician
Georgian
German
Greek
Guarani
Gujarati
Haitian Creole
Hausa
Hawaiian
Hebrew
Hindi
Hmong
Hungarian
Icelandic
Igbo
Indonesian
Interlingua
Irish
Italian
Japanese
Javanese
Kannada
Kazakh
Kinyarwanda
Kirundi
Kongo
Korean
Krio (Sierra Leone)
Kurdish
Kurdish (Soranî)
Kyrgyz
Laothian
Latin
Latvian
Lingala
Lithuanian
Lozi
Luganda
Luo
Luxembourgish
Macedonian
Malagasy
Malay
Malayalam
Maltese
Maori
Marathi
Mauritian Creole
Moldavian
Mongolian
Myanmar (Burmese)
Montenegrin
Nepali
Nigerian Pidgin
Northern Sotho
Norwegian
Norwegian (Nynorsk)
Occitan
Oriya
Oromo
Pashto
Persian
Polish
Portuguese (Brazil)
Portuguese (Portugal)
Punjabi
Quechua
Romanian
Romansh
Runyakitara
Russian
Samoan
Scots Gaelic
Serbian
Serbo-Croatian
Sesotho
Setswana
Seychellois Creole
Shona
Sindhi
Sinhalese
Slovak
Slovenian
Somali
Spanish
Spanish (Latin American)
Sundanese
Swahili
Swedish
Tajik
Tamil
Tatar
Telugu
Thai
Tigrinya
Tonga
Tshiluba
Tumbuka
Turkish
Turkmen
Twi
Uighur
Ukrainian
Urdu
Uzbek
Vietnamese
Welsh
Wolof
Xhosa
Yiddish
Yoruba
Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,570 --> 00:00:01,140
In this video.
2
00:00:01,140 --> 00:00:03,090
We're going to cover the solution for part six.
3
00:00:03,090 --> 00:00:05,820
We're going to tie everything together by adding user interactivity.
4
00:00:06,480 --> 00:00:10,050
I'll start off by removing everything from Main except for the manager object.
5
00:00:17,840 --> 00:00:23,270
And Task one tells us to make the contact manager a class variable, which implies that we need to access
6
00:00:23,270 --> 00:00:25,550
it from more than one place inside the class.
7
00:00:25,790 --> 00:00:26,300
Fair enough.
8
00:00:27,700 --> 00:00:28,590
That's taken care of.
9
00:00:28,610 --> 00:00:31,490
Now we're going to define a function named load contacts.
10
00:00:35,480 --> 00:00:39,110
Takes one parameter, the file name that we're going to load contacts from.
11
00:00:45,230 --> 00:00:47,840
And the function throws a file not found exception.
12
00:00:55,670 --> 00:00:58,640
First thing we're going to do is load contact from the file name.
13
00:00:59,150 --> 00:01:01,490
We can use a file input stream to accomplish that.
14
00:01:01,640 --> 00:01:04,550
So create a new object of the file input stream class.
15
00:01:09,170 --> 00:01:12,050
And pass into it the file name that we want to connect to.
16
00:01:16,290 --> 00:01:19,410
And the final upstream constructor throws a found that found exception.
17
00:01:19,680 --> 00:01:20,880
It's a checked exception.
18
00:01:20,880 --> 00:01:26,220
So Java would normally force us to catch the exception, but we're already throwing the exception from
19
00:01:26,220 --> 00:01:26,700
the method.
20
00:01:26,700 --> 00:01:29,340
So whoever is calling it is going to handle the failure.
21
00:01:30,210 --> 00:01:33,090
The next thing we want to do is read the data from the contacts file.
22
00:01:37,000 --> 00:01:39,700
So after connecting to the file, you can read its data.
23
00:01:39,700 --> 00:01:42,640
Using scanner will create a new scanner object.
24
00:01:50,050 --> 00:01:54,820
And instead of receiving input from the system, it's going to receive input from the final input stream.
25
00:01:55,750 --> 00:01:59,050
And then we can use a wire loop to read all the data from the file that we're scanning.
26
00:01:59,320 --> 00:02:02,830
The while loop is going to keep running as long as the file has a next line.
27
00:02:14,530 --> 00:02:16,150
So it should run three times.
28
00:02:21,440 --> 00:02:25,040
And during each run, we're going to create a new contact object.
29
00:02:33,220 --> 00:02:37,720
And for each object we're going to grab the name, phone number and birthdate using scanned.
30
00:02:37,840 --> 00:02:38,350
Next.
31
00:02:51,220 --> 00:02:56,770
And so during its run, each scandal next is going to grab the next string delimited by whitespace.
32
00:02:57,610 --> 00:02:58,690
And here we get an error.
33
00:02:58,750 --> 00:03:02,230
That's because the contact constructor can throw a pass exception.
34
00:03:02,950 --> 00:03:05,080
Pass exception is a checked exception.
35
00:03:05,080 --> 00:03:09,400
So if you want to call this constructor, Java's going to force you to try to run the code.
36
00:03:14,430 --> 00:03:18,330
And if the code happens to fail, you need to catch the pirates exception.
37
00:03:21,150 --> 00:03:23,310
And we'll just print the message that comes out of it.
38
00:03:28,970 --> 00:03:34,460
And now we're going to add every contact that we create to the contact list manager, not add contact.
39
00:03:34,820 --> 00:03:35,540
Contact.
40
00:03:37,970 --> 00:03:40,730
And as always, don't forget to close scanner when you're done with it.
41
00:03:49,020 --> 00:03:51,330
And that wraps up the load contact function.
42
00:03:52,060 --> 00:03:55,380
We can go back to the main method we're going to call load contacts.
43
00:03:59,470 --> 00:04:00,970
And it's not auto completing.
44
00:04:02,120 --> 00:04:03,770
Oh, I forgot to make it static.
45
00:04:04,130 --> 00:04:06,460
Remember, we have to make everything static inside men.
46
00:04:06,500 --> 00:04:08,240
I'll explain why in the next section.
47
00:04:08,510 --> 00:04:10,790
Right now, don't worry too much about why we do it.
48
00:04:11,060 --> 00:04:12,680
More so that we need to do it.
49
00:04:13,830 --> 00:04:17,970
And the file reloading contacts from is going to be contact start text.
50
00:04:21,560 --> 00:04:26,450
Once again we get an error because the load contact method can throw a file not found exception.
51
00:04:26,990 --> 00:04:28,850
This once again is a checked exception.
52
00:04:29,150 --> 00:04:32,540
So if you want to call this method, job is going to force you to try to run the code.
53
00:04:34,640 --> 00:04:38,750
And if the code happens to fail, you need to catch the file not found exception.
54
00:04:44,400 --> 00:04:46,740
And here we'll just print the message that comes out of it.
55
00:04:52,070 --> 00:04:54,740
So here we're going to print contacts, load it.
56
00:04:56,710 --> 00:04:57,790
With two lines.
57
00:05:05,200 --> 00:05:08,860
And we're going to follow that up by printing a two string of the contact manager.
58
00:05:14,860 --> 00:05:16,970
I think it's time to test our function and we out how?
59
00:05:17,020 --> 00:05:18,040
Break point right here.
60
00:05:18,400 --> 00:05:19,450
Launch the debugger.
61
00:05:23,850 --> 00:05:28,290
Step into the function, I'll step over creating the file in the stream object.
62
00:05:33,190 --> 00:05:34,720
As well as the scatter object.
63
00:05:36,830 --> 00:05:39,530
The wire loop runs through every line in the contacts file.
64
00:05:41,660 --> 00:05:46,730
And from each line we're creating a contact object from every string value that we're scanning using
65
00:05:46,730 --> 00:05:47,120
scanned.
66
00:05:47,120 --> 00:05:47,810
Up next.
67
00:05:55,510 --> 00:05:58,270
And then we're adding that contact to the contact list.
68
00:06:00,630 --> 00:06:04,410
And you'll notice that once we get to GM, her birthdate is invalid.
69
00:06:04,830 --> 00:06:07,440
So for Geo, a past exception is going to be thrown.
70
00:06:10,890 --> 00:06:14,580
But don't worry, the app is not going to crash because we're catching that exception.
71
00:06:21,620 --> 00:06:23,840
And for Thomas, everything should work fine.
72
00:06:33,990 --> 00:06:36,960
Now we have two valid contacts in the contact list.
73
00:06:49,270 --> 00:06:51,160
That's all for tasks one, two and three.
74
00:06:51,580 --> 00:06:54,010
In the next video we're going to implement task for.
6933
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.