- 締切済み
javaのプログラムで分からない箇所があります
public class Addkensaku { //読み込むファイルのパス private static final String FILE_PATH = ""; private static enum SearchMode { NAME, AGE, ADDR, REGIST, EXIT } private static final Map<String, SearchMode> modeMap; static { modeMap = new HashMap<String, Addkensaku.SearchMode>(); modeMap.put("1", SearchMode.NAME); modeMap.put("2", SearchMode.AGE); modeMap.put("3", SearchMode.ADDR); modeMap.put("5", SearchMode.REGIST); modeMap.put("9", SearchMode.EXIT); } public static void main(String[] args) throws IOException { BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); String mode = null; System.out.println("何をしますか?\n1.名前(ファーストネーム)で検索\n2.フルネームで検索\n3.年齢で検索\n4.都道府県で検索\n5.追加"); mode = buf.readLine(); if (!checkSearchMode(mode)) { System.out.println("入力値が不正です"); return; } // 読み込み List<Addr> allData = readData(FILE_PATH); SearchMode enmMode = modeMap.get(mode); // 検索 String keyword = null; List<Addr> answer = search(allData, enmMode, keyword); } private static List<Addr> readData(String path) { return null; } //ファイル書きこみ private static void writeData(String path) { } private static List<Addr> search(List<Addr> allData, SearchMode mode, String keyword) { if(SearchMode.NAME == mode){ } if (SearchMode.AGE == mode) { for (Addr record : allData) { record.getName(); } if(SearchMode.ADDR == mode){ } } return null; } private static boolean checkSearchMode(String value) { return modeMap.get(value) != null; } } クラスAddr.java public class Addr { private String name; private String age; private String add; //データ更新用メソッド public void setName(String name) { this.name = name; } public void setAge(String age) { this.age = age; } public void setAdd(String add) { this.add = add; } //参照メソッド public String getName() { return name; } public String getFirstName() { return name.split(" ")[1]; } public String getAge() { return age; } public String getAdd() { return add; } } 二つのクラスを使いテキストファイルの中身を読み込み検索しようとしています ですがパスの指定場所はあっているはずなのですがうまくファイルが読み込めなくここからどのように作っていけばいいかわからず困っています
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ninoue
- ベストアンサー率52% (1288/2437)
読み込むテキストファイル名として"FILE_PATH" が指定されていますが、nullのままではないでしょうか。 また readData メソッドの中身は return null; となっています。 これではファイルは読み込み出来ないでしょう。 ソースを再度見直して下さい。 途中までしか書かれていないメソッド等を最後まで書き上げて下さい。 机上デバッグを自分が計算機になったつもりで1ステップ毎に実行トレースしてみて下さい。 或いはEclipse等でステップ実行し確認する、 途中にprint文等を追加してプログラムの流れや関連するデータの内容を確認する 等をトライしてみて下さい。 その他、Javaの入門書等を入手して基礎から理解するようにして下さい。 http://okwave.jp/qa/q8361827.html おすすめのjavaの本を教えて下さい
- kmee
- ベストアンサー率55% (1857/3366)
> この場合どこにFileReaderをいれたらいいのでしょうか? 「ファイルを読み込む前に実行される箇所」です。 正解を知っているのは、あなただけです。 「プログラムの設計図」を作ってますか? その「設計図」では、ファイルを読み込むのはどこですか? それは、このプログラムではどこに該当しますか? 例えば、「mainが開始すると同時にオープン」という作り方も、間違いではありません。(その後の処理が正しければ) > // 読み込み > List<Addr> allData = readData(FILE_PATH); とあるので、 readDataメソッドの中に書くのも正しいでしょう。 readDataメソッドから呼び出される他のメソッドの中に書くこともできます。 専用のクラスを定義してもよいでしょう。 それぞれに一長一短があります。
- kmee
- ベストアンサー率55% (1857/3366)
そもそも、ファイルを読んでいる様子が無いのですが?
補足
この場合どこにFileReaderをいれたらいいのでしょうか?