android 读取txt文件获取每行内容

android 读取txt文件获取每行内容,第1张

方法:

通过输入流的readline方法进行按行读取内容。

举例:

public static void readFileOnLine(String filePath){//输入文件路径

   FileInputStream fis = openFileInput(filePath)//打开文件输入流

   StringBuffer sBuffer = new StringBuffer()

   DataInputStream dataIO = new DataInputStream(fis)//读取文件数据流

   String strLine = null

   while((strLine =  dataIO.readLine()) != null) {//通过readline按行读取

      sBuffer.append(strLine + "\n")//strLine就是一行的内容

   }

  dataIO.close()

  fis.close()

}

我刚才特意试了一下在自己的代码里加了点调试信息

String user = _loginUser.getText().toString()

int firstCR = user.indexOf("\n")

_loginUser是我UI中的EditText,在其中我输入了3行文字,每行文字我都是手动按回车键换行,这样取出来的文本是带有换行符的。

但是你如果是一直输入满后让EditText自动换行的话,这样取出来是不带换行符的。这样其实是很有道理的,自动换行本来就不会给你插入换行符,它只是由于UI的边界,看起来像换行了一样。

我觉得有种简便办法可以解决。

int lineCount = _loginUser.getLineCount()

这样可以取得EditTex里的行数

把它和里面找到的'\n'比较一下数量,就知道你的这段文本大概是个什么情况。

1 如果行数和\n数量对得上,说明每行都是手工回车换行的这种最简单,直接保存。

2 如果\n为0说明都是ui自动换行的,这样也简单,把总字数和行数一计算就知道有多少行,每行多少字,然后自己存盘时插入换行符。当然这样不太准确,算是折中。

3 对不上,说明有自动换行,也有手动换行,这种其实很麻烦,可以参考2的办法解决了。

总之没有太好的办法,毕竟EditText没法按行数取得文本

你可以自己覆写一个EditText的子类,来提供这样的方法。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11749213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存