Java lanterna 终端放入 java.properties 文件?

Java lanterna Terminal put in java.properties file?

我对编程还很陌生(现在已经学了一个学期了),我应该使用 Lanterna Libary(在我的最终项目中)制作一个终端,以后我可以在其中 运行一个非常简单的迷宫游戏,有墙壁和静态和动态 "enemies" 以及玩家必须捡起的一些关键对象。可悲的是,我不知道这将如何工作。我已经花了大约 10 个小时来研究这个问题,但它唯一给我带来的是挫败感。

我在 youtube 上找到了一个教程,其中 javax.swing 用于制作 Konsole.add(new map()) 短语从 class 获取地图,从 .txt 将整个内容读入 java。我希望做那样的事情,但正如所说,我只需要 lanterna 终端 并从 java.properties 文件 中读取地图].

可以吗?还是我必须使用完全不同的方法? 我在 lanterna 的网站上查看并阅读了几次 throw it 但无法从中得到任何帮助我的东西。我还在这个网站上检查了任何包含 lanterna 的 post,但它只是稍微加深了我的知识。 任何类型的提示或建议,即使只是对另一篇文章的 link 也会对我有所帮助。

好吧,首先你必须初始化灯笼控制台,这将调出一个代表你的灯笼控制台的新秋千 window。

灯笼草

你可以这样使用:

//Init Lanterna terminal
Terminal terminal = TerminalFacade.createTerminal();
//Will bring up the terminal window
terminal.enterPrivateMode();
//Optional: you can hide the cursor so it wont blink
terminal.setCursorVisible(false);

所以现在您可以使用方法 terminal.moveCursor(x, y)terminal.putCharacter(char); 来打印您的地图。 当你终止你的程序时,你应该调用

terminal.exitPrivateMode();

属性文件

因此,您要做的第一件事就是读取其中的属性文件。

String filename = ""; //Filename or filepath to your .properties file
Properties properties = new Properties();
try {
    InputStream inputStream = new FileInputStream(filename);
    properties.load(inputStream);
    inputStream.close();
} catch (java.io.IOException e) {
    e.printStackTrace();
}

要从 Properties 对象中检索数据,您可以使用方法 properties.propertyNames()properties.getProperty("PropertyName")

Enumeration<?> propertyNames = properties.propertyNames();
while (propertyNames.hasMoreElements()) {
    String name = (String) propertyNames.nextElement();
    String value = properties.getProperty(name);
    System.out.println("Name: "+name+"\tValue: "+value);
}

这会打印出 .properties 文件中的每个条目。您现在处理了 key-value 对,并可能将它们存储在数组或集合中。然后你可以编写一个方法将它们打印到你的 Lanterna 控制台,你可以轻松地更新它们或将它们保存回 .properties 文件。希望这对您有所帮助:)