首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取和排序Java文本文件中的信息

无法读取和排序Java文本文件中的信息
EN

Stack Overflow用户
提问于 2015-11-24 02:36:03
回答 1查看 29关注 0票数 0

我试图使用BufferedReader读取一个文本文件,并对文件中的信息进行排序。其目的是加载和能够访问信息的地图为我正在制作的游戏。我遇到的问题是,当我的程序试图对信息进行排序时,我会得到一个NullPointerException

LoadWorld.java:

代码语言:javascript
复制
public class LoadWorld {

    private static String CurrentString;
    private static String[] LinePts;
    private static String Path="";
    private static String Name="";
    private static String Auth="";
    private static String Date="";

    private static boolean Reading = true;
    private static boolean OnMap = false;

    private static int Maps = 0;

    private static Map[] Map;

    public static void Load() {

         try {

                BufferedReader reader = 
                    new BufferedReader(new InputStreamReader(LoadWorld.class.getResourceAsStream("/Maps/Maps.txt")));

                while(Reading) {

                    CurrentString = reader.readLine();

                    if (CurrentString.equals("{")) {OnMap=true;Maps+=1;}
                    else {Reading=false;}

                    while(OnMap) {



                        CurrentString = reader.readLine();
                        if (!(CurrentString.equals("}"))) {

                            LinePts = CurrentString.split("-");

                            if (LinePts[0].equals("PATH")) {Path=LinePts[1];}
                            else if (LinePts[0].equals("NAME")) {Name=LinePts[1];}
                            else if (LinePts[0].equals("AUTH")) {Auth=LinePts[1];}
                            else if (LinePts[0].equals("DATE")) {Date=LinePts[1];}

                        }
                        else {

                            Map[Maps].Path = Path;
                            Map[Maps].Name = Name;
                            Map[Maps].Auth = Auth;
                            Map[Maps].Date = Date;
                            OnMap=false;

                        }

                    }

                }

                reader.close();         
            }

            catch(IOException e) {

                e.printStackTrace();

            }

    }

这个问题发生在"mapmaps.path =path“的"else{”部分中。

Map.java:

代码语言:javascript
复制
public class Map {

    public String Path;
    public String Name;
    public String Auth;
    public String Date;
    public String Map;

}

我试图读取的文本文件: Maps.txt

代码语言:javascript
复制
{
PATH-Default/Basic.txt
NAME-Basic Map
AUTH-Aelex Esrom
DATE-11/1/15
}

任何帮助都是非常感谢的!事先谢谢你的回答。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-24 02:45:25

您需要初始化变量Map

代码语言:javascript
复制
Map = new Map[5]; //array of fixed size 5

也许您正在尝试以PHP的方式动态添加数组元素,但在Java中它的工作方式并不相同。要么创建一个固定大小的数组,要么使用ArrayList

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33884485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档