2016-11-04 11 views
0

我triying从我的txt文件在android中获取句子,它获取句子的行,但其中一些失踪?为什么?这里是我的代码:为什么有与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