javaファイル操作

現在javaでファイル操作しファイルの文字列を検索したりファイルに文字列を追加したりする
ものを作成しています。
現状のコードはこのような感じです。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

	class addresskensaku{
			public static void main(String[]  args)throws IOException{
				System.out.println("数字を選択\n１．名前で検索\n２．年齢で検索\n３．出身地で検索\n４．追加");
				BufferedReader br =
				new BufferedReader(new  InputStreamReader(System.in));
				String str = br.readLine();
				char res = str.charAt(0);
				//1が選択された場合
			if(res == '1' || res == '１'){
				System.out.println("名前を入力してください。");
				BufferedReader fn =
				new BufferedReader(new  InputStreamReader(System.in));
				String str1 = fn.readLine();
			try{
				FileReader freader = new FileReader("addressdata.txt");
				BufferedReader breader = new  BufferedReader(freader);
				String tmp = null;
				//検索
				System.out.println("検索結果 ：");
				while((tmp=breader.readLine())!=null){
						String[] words = tmp.split(",");
					//部分一致
					if(words[0].indexOf(str1) != -1){
						System.out.println(tmp);
						}
					}
					breader.close();
			}catch(IOException e){
					 System.out.println("e");
					}
				}
			//２が入力された場合
			if(res == '2' || res == '２'){
				System.out.println("年齢を入力してください。");
				BufferedReader o =
				new BufferedReader(new InputStreamReader(System.in));
				String ol = o.readLine();
			try{
				FileReader freader = new FileReader("addressdata.txt");
				BufferedReader breader = new  BufferedReader(freader);
				String tmp =null;
				//検索
				while((tmp=breader.readLine())!=null){
						String[] words = tmp.split(",");
					//完全一致
					if (ol.equals(words[1])){
						//	System.out.println("検索結果:");
						System.out.println(tmp);
					}
				}
				breader.close();
			}catch(IOException e){
					System.out.println("e");
				}
			}
			//3が入力された場合
			if(res == '3' || res == '３'){
				System.out.println("出身地を入力してください。");
				BufferedReader p =
				new BufferedReader(new InputStreamReader(System.in));
				String pref = p.readLine();
			try{
				FileReader freader = new FileReader("addressdata.txt");
				BufferedReader breader = new BufferedReader(freader);
				String tmp = null;
				//検索
				while((tmp=breader.readLine())!=null){
						String[] words = tmp.split(",");
					//部分一致
					if(words[2].indexOf(pref) != -1){
						System.out.println(tmp);
					}
				}
				breader.close();
			}catch(IOException e){
					System.out.println("e");
				}
			}
			//4が入力された場合 追加
			if(res == '4' || res == '４'){
				//氏名入力
				System.out.println("氏名を入力してください。");
				BufferedReader n =
				new BufferedReader(new  InputStreamReader(System.in));
				String str2 = n.readLine();
				//年齢入力
				System.out.println("年齢を入力してください。");
				BufferedReader o =
				new BufferedReader(new  InputStreamReader(System.in));
				String str3 = o.readLine();
				//住所入力
				System.out.println("住所を入力してください。");
				BufferedReader a =
				new BufferedReader(new  InputStreamReader(System.in));
				String str4 = a.readLine();
			//ファイルに書き込み
			try{
				File file = new File("addressdata.txt");
				FileWriter filewriter = new FileWriter(file, true);
				filewriter.write(str2+","+str3+","+str4+"\r\n");
				filewriter.close();
			}catch(IOException e){
					System.out.println("e");
				}
			}
		}
	}

これをうまくカプセル化できないでしょうか？
検索
入力
入力チェック
データの比較
該当したレコードの出力　
・追加
　入力
　チェック
のように各機能ごとにメソッドを分けて作ろうかなと思っています。
結果の出力はmainでやる予定です。

アドバイスくださいよろしくおねがいします。