一个单独的类,它在android应用程序中返回一个String数组?

时间:2016-07-04 11:57:15

标签: java android arrays string

我只是想知道如何编写一个返回String数组的类。 如果你愿意的话,这是工作的事情或工作流程。

1)我在raw /文件夹中有一个文本文件

2)我将在应用启动时阅读此文本文件。

3)阅读文本文件的过程将通过问题中的一个类来完成。

4)所以我要求的类没有其他任务,但要加载文本文件,读取它并将String数组返回给MainActivity。

5)在MainActivity中,我会像这样访问*that* array's个元素......

String test = returnedArray[i];

所以,让我们在raw文件夹中的文本内容为: 一二三四...

我要求的课程将会阅读String(s),并会返回String array,如下所示: {"one","two","three","four" ... } // a complete array type.

所以我想知道的主要是这个类的结构。

第二件事是:

以什么格式...例如......一,二,三,四......或 我应该在文本文件中写一个|二|三个|四个...等等 类读取和返回String数组的过程尽可能容易吗?

我不想做的一件事是writing directly array forma进入文本文件并加载并阅读它。

我想我已经清楚地解决了我的问题。

我正在学习java basic。

编辑: 实际上我现在正在尝试:这里是代码片段:我可以加载文件并在textview上显示。但有点丢失了如何从那里返回一个字符串数组。请不要在MainActivity中完成。我想知道我是否可以在单独的课程中完成。

///////////// private StringBuilder myFunction(Context context)抛出IOException     {         // TODO:实现此方法

        final Resources resources =  context.getResources();
        InputStream inputStream = resources.openRawResource(R.raw.texttext);
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        StringBuilder strBuild = new StringBuilder();

        try {
            String line;

            while ((line = reader.readLine()) != null) {
             strBuild.append(line);
                }




        } finally {
            reader.close();
        }
        return strBuild; 

}

/////////////

5 个答案:

答案 0 :(得分:0)

如果你要存储的数据只是简单的单行字符串,那么最方便的存储方式就是用换行符分隔它们 - 作为用户/开发人员,它很容易读取,读取行是与读取文件的一部分直到任意分隔符(更不用说转义规则)相比,操作相对简单。

要阅读整个文件,您可以使用FileUtils.readLines

答案 1 :(得分:0)

将每个字符串放在一个新行上,这样您就可以在阅读时将它们分开。此外,您必须读取文件并将每行(字符串)添加到数组或更好的arraylist,因为您可能不知道数组大小。

我建议您阅读资产文件夹和馆藏中的文件。 尝试一些事情并发布遇到的问题。

答案 2 :(得分:0)

您必须阅读文件并将每个单词放在不同的阵列位置? 1 - 读取BufferedReader和FileReader文件 2 - 使用

保存readed线,如单个字
String line = File.nextLine();
String[] words = line.split("separator");

3-现在你拥有数组中的所有单词,你只需要找到一种以正确的方式记忆它们的方法。

答案 3 :(得分:0)

这是你如何做到的。它只是向你展示,改进它:)

 public class ReadFileToList{ 

    private final ArrayList<String> list = new ArrayList<String>();
    private final Context context;

    public ReadFileToList(Context context){
        this.context = context;

        myFunction();
    }

    private void myFunction() throws IOException { 

        final Resources resources =  context.getResources();
        InputStream inputStream = resources.openRawResource(R.raw.texttext);
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        StringBuilder strBuild = new StringBuilder();

        try {
            String line;

            while ((line = reader.readLine()) != null) {
                list.add(line);
            }




        } finally {
            reader.close();
        }
        return list; 
    }

    public ArrayList<String> getList(){
        return list;
    }
}

在MainActivity中使用:

ReadFileToList rftl = new ReadFileToList(getApplicationContext());
ArrayList<String> list = rftl.getList();

答案 4 :(得分:-1)

我建议使用Scanner类来解析输入文件:

Vector<String> vector = new Vector<String>();
Scanner sc = new Scanner(new File("raw/yourfile.txt"));
while (sc.hasNextLine()) {
     vector.add(sc.nextLine());
}
String[] rerValue = vector.toArray(new String[vector.size()]);

您可以在stackoverflow上找到有关Scanner类及其用法的更多信息:

Read next word in java