将文本文件的行读入数组

时间:2015-06-03 22:00:38

标签: java android arrays file text

我想在每次有人启动应用程序时随机显示一个新的报价。为了做到这一点,我想使用包含所有引号的文本文件,每行一个。

我想在android studio中知道我应该在哪里放置我的文本文件然后如何读取此文本文件并将每行放入数组中?

我发现这个代码可以完成这项工作,但似乎不起作用:

// set up variables
String fileName = "MyFriends.txt";
String line;
ArrayList aList = new ArrayList();

//Read the lines of text into an ArrayList

try {
BufferedReader input = new BufferedReader(new FileReader(fileName));
if (!input.ready()) {
    throw new IOException()
}
while ((line = input.readLine()) != null) {
    aList.add(line);
}
input.close();

            } catch (IOException e) {
System.out.println(e);
    }

由于

解: 这个页面有很多帮助:http://developer.android.com/guide/topics/resources/string-resource.html#StringArray

String[] quotes = getResources().getStringArray(R.array.quotes_array);
Random randomGenerator = new Random(); 
//Construct a new Random number generator
int randomNumber = randomGenerator.nextInt(quotes.length);
fact = quotes[randomNumber];

2 个答案:

答案 0 :(得分:1)

这是一种非常安全的思维方式。

考虑使用res/values/strings.xml存储引号,然后使用getResources().getStringArray(R.string.quotes)从那里读取随机数,然后生成0和该数组大小之间的随机整数。

使用资源的好处 - 您可以使用相同的标识符,但可以根据区域更改引号。

答案 1 :(得分:0)

您可以在资产目录中拥有它。如果这样做,您访问该文件的方式也将更改。谷歌看看如何从资产中读取文件。