Skip to content
This repository has been archived by the owner on Jan 16, 2025. It is now read-only.

简单的读写_02

Frish2021 edited this page Jan 4, 2025 · 4 revisions

简单的读写 (读操作)

接上回,bro学会了此NBT库的写操作,既然会拿笔写字了,总该会读书吧.

Note

以下代码中的运行入口均以Junit 测试单元框架为例

下面代码需要用到的包

  • java.io.File
  • me.coderfrish.nbt.io.NBTInput
  • org.junit.jupiter.api.Test (如果你是用main(String[] args)为运行入口,那么这个可有可无)
  • java.io.IOException

示例nbt文件内容:

student: {
    name: Frish2021
    age: 14
}

代码(Java)

public class NBTest {
    @Test
    public void test() {
        try(NBTInput input = new NBTInput(new File("指定的NBT文件"))) {
            TagObject object = input.read();
            System.out.println(object.get("name").getAsString());
            System.out.println(object.get("age").getAsInt());
        } catch(IOException e) {
            throw new RuntimeException(e);
        }
    }
}

最后输出的结果是:

Frish2021
14

还是上次的那个问题,能否用Kotlin?那必须的奥!
我们可以把以上代码改成Kotlin版本的:

class NBTest {
    @Test
    fun test() {
        NBTInput(new File("指定的NBT文件")).use {
            val `object` = it.read()
            
            println(`object`["name"].asString)
            println(`object`["age"].asInt)
        }
    }
}

最后,输出的效果是一样的(反序列化没写好所以没有第二种读法)。 至此,你已经学会了如何简单地使用该NBT库了!!