我只是想知道如何编写一个返回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;
}
/////////////
答案 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类及其用法的更多信息: