2012-10-31 38 views
0

我试图读取.txt文件。但在textview中未格式化的文本。我,即使我已经给出了新的行,textview中没有新行。句子是连续的。是否可以格式化?代码是这样一个字符串这未获取格式文本

final StringBuffer buffer = new StringBuffer(); 

    try{ 
     DataInputStream dataIO= new DataInputStream(getResources().openRawResource(R.raw.chapter1)); 
     String strLine= null; 
     while((strLine = dataIO.readLine())!=null){ 
      buffer.append(strLine); 
     } 
     dataIO.close(); 
    }catch(Exception e){ 

    } 
    TextView tv=(TextView) findViewById(R.id.chapter); 
    tv.setText(buffer.toString()); 


} 

回答

0

存储你的文件的内容读取文件如下::

String fileContent = buffer.toString().replaceAll("\\r|\\n", "<br />"); 

然后,在你的文本视图设置文本为HTML后:

txtview.setText(Html.fromHtml(fileContent)); 
+0

为什么fileContent中有额外的右括号。 – test1990bdvt

+0

我没有得到fileContent行。请以语法的方式制作,以便我可以使用它。谢谢。 – test1990bdvt

+0

哦...对不起......我的错误....编辑答案.....让我知道你是否得到预期的结果或不...... – hemu

3

参考文档DataInputStream.readLine()

该字符串不包含换行符序列。

所以strLine,你追加到StringBuffer将不会包含换行符。 您可以修改您的代码,如下所示:

while((strLine = dataIO.readLine())!=null){ 
     buffer.append(strLine); 
     buffer.append('\n'); 
    } 
+0

它的工作。谢谢。 – test1990bdvt

+0

请[接受](http://meta.stackexchange.com/a/5235)表示问题已解决的答案。 – Rajesh

+0

请给出一些关于动态打开文件的建议。我的意思是,我在原始文件夹中保存了一些章节。从章节列表中,如果用户选择chapter1,则R.raw应在末尾加载chapter1文件。如果是chapter2,那么chapter2等等。请帮我解决这个问题。 – test1990bdvt