0

我一直在研究暗黑破坏神2是如何动态生成战利品的,我认为创建一个有趣的应用程序会使用这个系统随机生成物品会很有趣。

我目前有我认为应该读取整个 txt 文件的代码,但它没有被解析。

看起来像:

private void itemGenerator() {
        int ch;
        StringBuffer strContent = new StringBuffer("");
        InputStream fs = getResources().openRawResource(R.raw.treasureclass);
        // read file until end and put into strContent
        try {
            while((ch = fs.read()) != -1){
                strContent.append((char)ch);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
}

文本文件中的示例如下所示:

Treasure Class  Item1   Item2   Item3
tc:armo3    Quilted_Armor   Buckler Leather_Armor
tc:armo60a  Embossed_Plate  Sun_Spirit  Fury_Visor
tc:armo60b  Sacred_Rondache Mage_Plate  Diadem

所以我现在想的是把每一行放入一个StringTokenizer由 \n 分隔的数组中以获得每一行。然后以某种方式再次为数组中的每个项目使用制表符分隔并将其放入二维数组中?

我还没有对其进行编码,因为我认为有一种更好的方法可以实现我无法找到的,并且希望对此事有一些有用的意见。

对于任何真正有兴趣了解项目生成如何工作的人,他们的 wiki 页面http://diablo2.diablowiki.net/Item_Generation_Tutorial非常深入!

4

1 回答 1

0

我认为您在区分从文件中读出的每一行时遇到了问题。为了逐行读取文件,您应该将代码更改如下:

InputStream fs = getResources().openRawResource(R.raw.treasureclass);
BufferedReader br = new BufferedReader(new InputStreamReader(fs));
String line = null;
while((line = br.readLine()) != null){
    Log.i("line", line);
    //split the content of 'line' and save them in your desired way
}
于 2013-08-15T23:13:25.570 回答