【发布时间】:2013-02-19 22:03:14
【问题描述】:
问题“如何逐行读取本地(res/raw)文件?”处理类似的问题,但我无法根据那里提供的答案构建解决方案。我确实得到了一条非常有用的信息(具有 readLine 方法的 DataInputStream 类),我一直在开发者网站上对此进行研究并尝试使其工作。
我想要做的是将存储在文本文件的连续行中的信息读入字符串数组,这样第一行是第一个数组元素,第二行是下一个数组元素,等等......和然后这个字符串数组将用于填充下一个打开的活动中的文本字段。这一切都发生在开关盒内(取决于案例,即选择了哪个列表项,加载了不同的文本文件)。 这是我目前所拥有的:
//Retrieve necessary text file for inputstream
InputStream buildinginfo = getResources().openRawResource(R.raw.testbuilding);
class DataInputStream extends FilterInputStream{
protected DataInputStream(InputStream buildinginfo) {
super(buildinginfo);
// TODO Auto-generated constructor stub
int i;
String[] building_info;
//Assign lines of text to array
for(i=0; i<5; i++){
building_info[i] = buildinginfo.readLine();
}
}
}
到目前为止,除了这些错误之外,编辑器还可以接受,而且我没有足够的经验来理解它们。我明白他们在说什么,但不知道如何解决。错误位于我试图设置输入流并分配值的开关盒内的部分。 最重要的是,在 readLine 命令发生的那一行,我得到: “- 未定义 DataInputStream 类型的 readLine 方法” "- 未定义 InputStream 类型的 readLine 方法"
我不明白,因为如果我没记错的话,这里 (http://developer.android.com/reference/java/io/DataInputStream.html) 说 DataInputStream 类有可用的 readLine 方法(我从上面提到的问题中发现了这一点)。显然我没有正确使用 DataInputStream,但我似乎无法弄清楚如何。我在这里查看了几个问题,并多次引用了上面链接的页面。
如果有人能看出我做错了什么,我将非常感谢您的帮助。如果我为这种类型的任务完全找错了树,我为浪费时间而道歉,但非常感谢一些指导方针或对适当教程资源的推荐。过去两天我一直在试图找出这些错误。
【问题讨论】:
-
在此处查看前 2 个答案以获得更多帮助:stackoverflow.com/questions/4087674/…
-
非常感谢!我会玩它,如果我让它工作,我会告诉你。
-
但是你为什么不能把文本作为字符串变量添加到字符串 xml 资源文件中呢?这是它的文档:developer.android.com/guide/topics/resources/…
-
前几行文本很短,但最后一行可能是相当长的字符串。我想这会起作用,我只是认为这可能是一个比简单地在 XML 中定义字符串更优雅的解决方案。可能有多达 100 个定义有关不同建筑物的某些信息的文本文件。根据从建筑物列表中的选择,加载适当的文本文件。我仍然可以看到您的更简单的解决方案会起作用,但另一个问题是并非所有参与项目的人都知道如何在编辑器中工作。
-
继续...我希望让他们制作所有的文本文件,然后我就不必在编辑器中完成所有这些工作了。感谢您提及它...我并没有真正考虑过它,但如果一切都失败了,我想我可以恢复到那个。
标签: android readline arrays datainputstream