【发布时间】:2013-08-02 16:07:30
【问题描述】:
我希望在我的应用程序中读取文本文件,但我需要逐字读取,而不是逐行读取。我已经习惯了 Java 和带有 hasNext() 方法的 Scanner 类,所以我目前正在使用它。这是我的代码:
try
{
FileInputStream fis = openFileInput(FILENAME);
Scanner infile = new Scanner(new InputStreamReader(fis));
while(infile.hasNext())
{
accName = infile.next();
uName = infile.next();
pWord = infile.next();
((ArrayHandler)getApplicationContext()).info.add(new Information(accName, uName, pWord));
for( int i = 0; i < ((ArrayHandler)getApplicationContext()).info.size(); i++)
{
}
}
}
catch(Exception err)
{
Toast.makeText(getBaseContext(), "Could Not Read File", Toast.LENGTH_LONG).show();
}
如果有其他更好的方法,请告诉我。此外,在实际使用应用程序之前不会创建此文件,因此它会先抛出错误,然后在 onDestroy() 发生并且用户重新加载它将读取它的信息之后。
编辑 很抱歉直到现在没有回复。但上面显示的方法实际上是 100% 有效的。因此,对于那些希望逐字读取文件并分配它们(如上)的人来说,此代码可以正常工作。
【问题讨论】:
-
不确定您的实际目的是什么。请解释一下。你想完成什么?
-
你的文字是用什么分隔的?逗号?
-
你能不能只逐行阅读文件,然后逐字阅读你得到的每一行?您是否希望将帐户名、用户名和密码全部放在一条线上?如果是这种情况,那么我认为这将是一个简单的问题,即做一个 readline,然后用空格分割你得到的字符串并使用这些值的子字符串。或者您可以将它们放在文件中的单独行上,然后执行三个 readlines。就像阿卜杜勒说的,稍微澄清一下会有所帮助,除非我的假设是正确的。
标签: java android file-io java.util.scanner fileinputstream