2011-12-19 1 views
1

Как прочитать файл в текстовом виде с правильным отображением, как в текстовом файле? Я могу прочитать файл в текстовом виде. Но отображение как в текстовом файле. Мой Исходный текст файла:Как прочитать файл в текстовом виде с правильным отображением, как в текстовом файле?

Testing this 1 

Satheeshisdf sdf asdfsdfasd fasdfsdfsd 
i can able to do it. 

Trying it       thats all.` 

Но показывая, как это:

i can able to do it. 

Trying it       thats all.` 

Layout:

<ScrollView 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:fillViewport="true" 
android:layout_weight="1.0"> 
<TextView 
    android:id="@+id/subtitletv" 
    android:textSize="18dp" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
/> 

программы:

subtitletv = (TextView)findViewById("R.id.t"); 
try { 
     FileReader fr=new FileReader(selectedfile); 
     BufferedReader br=new BufferedReader(fr); 
     String line = null; 
     try { 
      while(br.readLine()!=null) 
      { 
       line =br.readLine(); 
       subtitletv.append(line); 
       subtitletv.append("\n"); 
      } 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

Update1: Но теперь я не могу прочитать большой файл (50 КБ). Маленькая загрузка файла.

ответ

4

Вы только добавление любой другой линии, потому что вы читаете две строки в то время ...

while(br.readLine()!=null) // THIS READS FIRST LINE THEN THIRD LINE 
{ 
    line = br.readLine(); // THIS READS SECOND LINE THEN FOURTH AND SO ON 
    subtitletv.append(line); 
    subtitletv.append("\n"); 
} 

Использования ...

while((line = br.readLine()) != null) 
{ 
    subtitletv.append(line); 
    subtitletv.append("\n"); 
} 
2

Вы читаете строку из br дважды за итерацию цикла. Только читайте один раз. Кроме того, убедитесь, что вы закрыли FileReader в блоке finally. Например:

subtitletv = (TextView)findViewById("R.id.t"); 
FileReader fr = null; 
try { 
    fr = new FileReader(selectedfile); 
    BufferedReader br = new BufferedReader(fr); 
    String line = br.readLine(); 
    while (null != line) { 
     subtitletv.append(line); 
     subtitletv.append("\n"); 
     line = br.readLine(); 
    } 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} finally { 
    if (null != fr) { 
     try { 
      fr.close(); 
     } catch (IOException e) { 
      // ignore 
     } 
    } 
} 
+0

спасибо человека. Он работает. Но теперь я не могу читать большой файл (30 КБ). Как это сделать. –

+0

Какая ошибка? –

+0

Деятельность не отвечает. с двумя кнопками wait и ok –