2016-11-04 10 views
0

アンドロイドで私のtxtファイルから文章を3倍にして、行単位で文章を取得していますが、どうして?ここに私のコードは次のとおりです。なぜBufferedreaderで文が見つからないのですか

public ArrayList<String> sorulist = new ArrayList<String>(); 
    ........ 
     try { 


    InputStream ins = getResources().openRawResource(
         getResources().getIdentifier("sorular", 
           "raw", getPackageName())); 
       InputStreamReader InputRead= new InputStreamReader(ins); 

       BufferedReader r = new BufferedReader(InputRead); 

       while ((r.readLine()) != null) { 
        sorulist.add(r.readLine()); 
       } 

       InputRead.close(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
       Toast.makeText(getBaseContext(), "nothing!", 
         Toast.LENGTH_SHORT).show(); 
      } 

私はこのコードでリストを表示しようとすると:

sorutxt.setText(sorulist.toString()); 

私は私のTextViewでこれを取得していますので、これはリストである:

[Yaptırımı manevi olan kurallar hangileridir?,Bir ülkede uygulanan, halen yürürlükteki yazılı ve yazısız hukuk kurallarına ne ad verilir?,null] 

しかし、私のオリジナルのtxtファイルはこれであるため、一覧にあるものはありません:

Sosyal hayatı düzenleyen kurallar hangileridir? 
Yaptırımı manevi olan kurallar hangileridir? 
Hukukun yaptırım türleri hangileridir? 
Bir ülkede uygulanan, halen yürürlükteki yazılı ve yazısız hukuk kurallarına ne ad verilir? 
"Pozitif hukuk" ile "tabii hukuk" arasındaki fark aşağıdaki seçeneklerden hangisidir? 

インデックス0,2,4アイテムが欠落していると思いますか?私のコードで何が間違っていますか? おかげでみんな

答えて

0
while ((r.readLine()) != null) { 
     sorulist.add(r.readLine()); 
} 

は、基本的には、理由の場合で、他のすべての行を落としています。 readLine()は実際に行を読み込むので、次回に呼び出すときにはすでに最初の行を渡しています。だからあなたのコードは、行がヌルでない場合に動作します。次の行を読み込んでリストに入れようとしています。

修正は次のようになります。

String lineFromFile; 
while ((lineFromFile = r.readLine()) != null) { 
     sorulist.add(lineFromFile); 
} 
+0

はいあなたが正しい、あなたが私の時間を保存し、私を幸せに非常にそれが正常に動作します:))))))ありがとう作られています)@Alex – dds

関連する問題