2017-03-05 6 views
0
package BIB; 
import java.io.*; 
import java.lang.*; 
public class fileParser{// start class file parser 

     static Map<String, String> word ; 
     Mapping_File mf = new Mapping_File(); 
     static Scanner scanner = new Scanner(System.in); 

     public static void main(String[] args){ 

      String Readline = "WCRE"; 
      String Converted = null; 
      word = mf.getWordsMap(); 

      if(word.containsKey(Readline)){ 
        Converted = word.get(Readline);   
      } 

      else if(word.isEmpty()){ 
       Converted = "the map you are looking in is empty"; 
       } 

     ` else 
      { 

       System.out.println("Couldnot find the elaborated form. 
            Please Type the elaborated form you 
            would like to use for : " 
          + Readline + "'"); 
       String query = scanner.next(); 
       Writer output; 
       output = new BufferedWriter(new  
           FileWriter("HashMap.txt", true)); 
       String Input = Readline + "=" + query; 
       output.append(Input); 
       output.close(); 
       Converted = "Your Input was added to the mapping file"; 

      }// end else 
      System.out.println(Converted); 


    }// end main method 
    }// end class 

を変更したユーザーの入力を付加すると、テキストファイルからそれを読み込むマッピングファイルMapping_Fileから単語「WCRE」の精巧なフォームを取得することになっているファイルを作成しました。しかし、私が持っているテキストファイルにはWCREという言葉が含まれていません。は、私がここでやった既存のテキストファイルに

このプログラムは、私が持っているテキストファイルには存在しないので、精巧なフォームをユーザーに尋ねるはずです。また、入力されたユーザタイプは、その前に単語 "WCRE ="とともにテキストファイルに書き込まれます。私はこのコードを実行するときしかし、このようなものは、ファイルの末尾に追加され

WCRE=ProceedingsWCRE=ofWCRE=20thWCRE=WorkingWCRE=ConferenceWCRE=onWCRE=ReverseWCRE=EngineeringWCRE=(WCRE) 

私が欲しいものは次のとおりです。

WCREリバースエンジニアリング上の第20回ワーキング会議=議事録(WCRE )

「リバースエンジニアリングに関する第20回作業会議の議事録(WCRE)」は、ユーザー入力です。

マッピングファイル構築物は、テキストファイルからの読み込み中にマッピングファイルが正常に動作し、次のマップを作成している

package BIB; 
import java.io.*; 
import java.util.*; 
public class Mapping_File{ 

    static Map<String, String> words = new HashMap<>(); 


    public Mapping_File(){ 

     this.words = words; 
     String filePath = "HashMap.txt";   
     String line; 
     BufferedReader reader = null; 
     try{ 

      reader =new BufferedReader(new FileReader(filePath)); 
      while((line = reader.readLine())!=null){ 
       String[] parts = line.split("=", 2); 
       String key = parts[0]; 
       String value = parts[1];  
       words.put(key, value); 

      }// end while 
     }// end try block 

     catch(Exception e){ 
       System.out.println("Couldnot find the requested file."); 
      }// end catch block 

     }// end constructor 

     public Map<String, String> getWordsMap(){ 

      return words; 
     }// end get method getWordsMap 


}// end of class Mapping_file 

私が読んでいたから、テキストファイルには、題しHashMap.txt以下の通りです:= ICSEをソフトウェア工学に関する国際会議(ICSE)

IWSC =ソフトウェアのクローンに関する国際ワークショップの議事録(IWSC)国際会議室、の

ASE =議事録自動化されたソフトウェア・エンジニアリング(ASE)年次コンピュータセキュリティアプリケーション会議(ACSAC)

ICSE(NIERトラック)=ソフトウェアエンジニアリング(ICSE)に関する国際会議の議事録、NIERトラック

ACSAC =議事録の電子

+0

whats 'Converted'? Mapping_File構造を共有してください。 – nullpointer

+0

あなたは 'main()'の中で 'word'にアクセスすることさえできますか? – nullpointer

+0

単語 'static Map word = new HashMap (){{ put(" ICSE "、"ソフトウェア工学国際会議議事録(ICSE) "); put( "IWSC"、 "ソフトウェアクローンに関する国際ワークショップの議事録(IWSC)");put( "WCRE"、 "リバースエンジニアリングに関する第20回作業会議の議事録(WCRE)"); }このように。 fileParserクラスのコードが正常に動作しているようです。あなたが正しい地図を返すかどうかだけをチェックしてください。 – nullpointer

答えて

0

メインメソッド内でScannerを宣言したときに、プログラムが自分のコンピュータで動作しました。 Scannerを使用し、scanner.next()をscanner.nextLine()に置き換えました。なぜなら、私は行全体を読み込むことになっていたからです。

関連する問題