3 import com.example.tutorial.protos.AddressBook;
4 import com.example.tutorial.protos.Person;
5 import java.io.BufferedReader;
6 import java.io.FileInputStream;
7 import java.io.FileNotFoundException;
8 import java.io.FileOutputStream;
9 import java.io.InputStreamReader;
10 import java.io.IOException;
11 import java.io.PrintStream;
16 PrintStream
stdout)
throws IOException {
17 Person.Builder person = Person.newBuilder();
19 stdout.print(
"Enter person ID: ");
20 person.setId(Integer.valueOf(
stdin.readLine()));
22 stdout.print(
"Enter name: ");
23 person.setName(
stdin.readLine());
25 stdout.print(
"Enter email address (blank for none): ");
26 String email =
stdin.readLine();
27 if (email.length() > 0) {
28 person.setEmail(email);
32 stdout.print(
"Enter a phone number (or leave blank to finish): ");
34 if (
number.length() == 0) {
38 Person.PhoneNumber.Builder phoneNumber =
39 Person.PhoneNumber.newBuilder().setNumber(
number);
41 stdout.print(
"Is this a mobile, home, or work phone? ");
43 if (
type.equals(
"mobile")) {
44 phoneNumber.setType(Person.PhoneType.MOBILE);
45 }
else if (
type.equals(
"home")) {
46 phoneNumber.setType(Person.PhoneType.HOME);
47 }
else if (
type.equals(
"work")) {
48 phoneNumber.setType(Person.PhoneType.WORK);
50 stdout.println(
"Unknown phone type. Using default.");
53 person.addPhones(phoneNumber);
56 return person.build();
62 public static void main(String[]
args)
throws Exception {
63 if (
args.length != 1) {
64 System.err.println(
"Usage: AddPerson ADDRESS_BOOK_FILE");
68 AddressBook.Builder addressBook = AddressBook.newBuilder();
72 FileInputStream
input =
new FileInputStream(
args[0]);
74 addressBook.mergeFrom(
input);
76 try {
input.close(); }
catch (Throwable ignore) {}
78 }
catch (FileNotFoundException e) {
79 System.out.println(
args[0] +
": File not found. Creating a new file.");
83 addressBook.addPeople(
88 FileOutputStream
output =
new FileOutputStream(
args[0]);
90 addressBook.build().writeTo(
output);