2016-03-22 10 views
-2

以下は私のコーディングロジックです。テキストファイルを解析し、重複値を検索してエラーをスローする

  • 「John」という名前の名前と「123」のアドレスの最初のユーザーキーは、 テキストファイルに保存されます。 「123」のように「ジョン」や住所などの正確な値の名前で
  • 2回目のユーザー・キー「の正確な値にすることはできません」のように、それは

をエラーがスローされます私は、テキストファイルを作成した最初の

  try{ 

       new JTextField(); 
       // create new file 
       String path="C:\\export.txt"; 
       File file = new File(path); 

        // if file doesnt exists, then create it 
        if (!file.exists()) { 
         file.createNewFile(); 
        } 

        FileWriter fw = new FileWriter(file.getAbsoluteFile(), true); 
        BufferedWriter bw = new BufferedWriter(fw); 
        // write in file     
        if (txtName.getText() !=null && txtAddress.getText() !=null) 
        { 
         bw.write(txtName.getText()); 
         bw.write(";"); 
         bw.write(txtAddress.getText()); 
         bw.write(System.getProperty("line.separator"));       
         System.out.print("Print Write Line :" +txtName.getText() +txtAddress.getText()); 

        }else {            
         System.out.print("""); 
        }      
        // close connection 
        bw.flush(); 
        bw.close(); 
        fw.close(); 
      }catch(Exception e){ 
       System.out.println(e); 
      } 

は、その後、私は読んでファイルを作成し、重複値

try{ 

      BufferedReader in = new BufferedReader(new FileReader("C:\\Users\\minzan\\Desktop\\export.txt")); 
      String line; 

      while ((line = in.readLine()) != null) { 
       //read all the line from the text file 
       System.out.println("Print Read line :" +line); 
      } 

      if((txtName.getText().compareTo(line)==0) && (txtAddress.getText().compareTo(line)==0)) 
      { 
       //read the output line first 
       //if o , it is a match and thwor error 
       System.out.println("Error : Same Name and Address :"); 
      } 

      in.close(); 

      }catch(Exception e){ 
       System.out.println("Error : Same Name and Address"); 
      } 

これは、私は、それがまっすぐに投げるエラーで1回目のキーを入力し、出力されるためにチェックします:

プリントライト線:John123 印刷読むライン:ジョン; 123 エラー:同じ名前とアドレスが

+0

デバッガを使用して、問題を詳しく説明してください。あなたの問題はどこですか?また、質問を改善するために、[最小限で完全で検証可能なサンプルを作成する方法](http://stackoverflow.com/help/mcve)をご覧ください。ようこそ! –

答えて

0

私は気付か物事のカップルは、重複する値をチェックし、あなたの検証コードでは、あなたは常に比較されることです入力はファイル内の最後の行となります。また、例外がスローされた場合は、名前とアドレスが同じであることを意味します。ファイルが存在するかどうかをチェックしていないので、存在しないファイルを読み込もうとしたときにFileNotFoundExceptionがスローされていると推測しています。あなたの作家のパスがあなたの検証コードのファイルと異なるとすれば、私はこれがそれであると賭けるつもりです。 :)

0

さんが英語でそれを読んでみましょう:)

はラインがゼロになるまでのラインを印刷してください。

名前とアドレスをnullと比較する - NullPointerException!

あなたはおそらくまだセットについて学んでいないでしょうが、少なくともarrayとforループについて知っておくべきです。あなたの問題を解決するためにそれらを使用してください。プログラムがあなたに指示したことをしていない場合は、System.out.println()をたくさん使ってください。

関連する問題