2016-07-22 29 views
0

私はここの他のスレッドを見てきましたが、私のために何かを見つけることができません。私がする必要があるのは、外部ストレージからテキストファイルを読み込んで、そのテキストをJavaファイルの文字列にコピーすることです。変換後、私はその文字列をEdittextでユーザーが入力した文字列と比較する必要があります。これは私がこれまで持っていたものであり、私はそれに多くの間違いがあると確信しています。テキストファイルからJava文字列に文字列をコピーするにはどうすればよいですか?

  try { 
       decrypt(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } catch (NoSuchAlgorithmException e) { 
       e.printStackTrace(); 
      } catch (NoSuchPaddingException e) { 
       e.printStackTrace(); 
      } catch (InvalidKeyException e) { 
       e.printStackTrace(); 
     } 

      final EditText pin = (EditText) findViewById(R.id.pin); 

     pin.setOnKeyListener(new View.OnKeyListener() { 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
        if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
          (keyCode == KeyEvent.KEYCODE_ENTER)) { 

        File file = new File(Environment.getExternalStorageDirectory().toString() + "/Vault/data1.txt"); 
         String pinkey = pin.getText().toString(); 

         if (pinkey.matches("")) { 
          Toast.makeText(MainActivity.this, "Type in pin", Toast.LENGTH_LONG).show(); 
         } 

         else { 
          try { 
           decrypt(); 
          } catch (IOException e) { 
           e.printStackTrace(); 
          } catch (NoSuchAlgorithmException e) { 
           e.printStackTrace(); 
          } catch (NoSuchPaddingException e) { 
           e.printStackTrace(); 
          } catch (InvalidKeyException e) { 
           e.printStackTrace(); 
          } 

          StringBuilder text = new StringBuilder(); 

          String key = new String(file.toString()); 
          try { 
           BufferedReader br = new BufferedReader(new FileReader(file)); 
           String line; 

           while ((line = br.readLine()) != null) { 
            text.append(line); 
           } 
           br.close(); 
          } catch (IOException e) { 
           e.printStackTrace(); 
          } 

          if (file.exists()) { 
          } else { 
           showHelp(null); 
          } 

          if (pinkey.equals(br)) { 
           Toast.makeText(MainActivity.this, "You're signed in", Toast.LENGTH_SHORT).show(); 
          } 
          else { 
           Toast.makeText(MainActivity.this, "Try again", Toast.LENGTH_LONG).show(); 
          } 
         } 
         return true; 
        } 
        return false; 
       } 

何か助けてください!

答えて

0

愚かな私。 、

とにかくP新しい行区切りが必要な場合はわからないこの

BufferedReader br = new BufferedReader(new FileReader(file)); 
     try { 
      StringBuilder sb = new StringBuilder(); 
      String line = br.readLine(); 

      while (line != null) { 
       sb.append(line); 
       sb.append(System.lineSeparator()); 
       line = br.readLine(); 
      } 
      String fileAsString = sb.toString(); 
     } finally { 
      br.close(); 
     } 

のようなあなたのtryブロックを試してみてください、しかし、あなたは別のファイルにそれを比較した場合、それは可能性があります:私はおそらくコメントの前にあるスクロールバーを使用する必要がありますファイルを表現する形でそれを得るのはいいですね...私は推測します。

0

あなたは、単純なScannerFileオブジェクトを使用することができます。

public String readFile(String path) { 
     try { 
      Scanner se = new Scanner(new File(path)); 
      String txt = ""; 
      while (se.hasNext()) 
       txt += se.nextLine() + "\n"; 
      se.close(); 
      return txt; 
     } catch (FileNotFoundException e) { 
      return null; 
     } 
    } 

あなたは、ファイルをスキャンするスキャナーを開き、限り、ファイルから読み込むことが多くのがあるので、あなたに次の行を追加します文字列。

このメソッドは、ファイルが存在しない場合はnullを返し、ファイルが空の場合は空の文字列を返します。

関連する問題