如何用Java(Bukkit)读取/写入播放器文件

如何用Java(Bukkit)读取/写入播放器文件,java,templates,minecraft,bukkit,Java,Templates,Minecraft,Bukkit,我对Java编码还很陌生,我正在尝试制作一个插件来创建一个字符模板。用户将键入命令/char名称。然后我希望它检查命令发送者的文件是否存在,如果存在,它将在其.dat文件中的字段“Name:”下写入。如果文件不存在,它将创建一个文件并写入该字段。我唯一的问题是创建、写入和读取文件。有一次,我设法让它创建用户文件并写入他们设置的名称,但我写不出更多,因为它会在文件中写入诸如“name:Gender”之类的愚蠢内容。我也不知道如何读取文件,因为它需要能够获得他们的设置名称来更改他们头顶上的名称标签

我对Java编码还很陌生,我正在尝试制作一个插件来创建一个字符模板。用户将键入命令/char名称。然后我希望它检查命令发送者的文件是否存在,如果存在,它将在其.dat文件中的字段“Name:”下写入。如果文件不存在,它将创建一个文件并写入该字段。我唯一的问题是创建、写入和读取文件。有一次,我设法让它创建用户文件并写入他们设置的名称,但我写不出更多,因为它会在文件中写入诸如“name:Gender”之类的愚蠢内容。我也不知道如何读取文件,因为它需要能够获得他们的设置名称来更改他们头顶上的名称标签

这是我在命令“/char-gender”上使用的代码示例:

if(label.equalsIgnoreCase(“字符性别”)){
如果(参数长度<2){
sender.sendMessage(“/char性别”);
返回false;
}
如果(参数等于(“男性”)){
印刷撰稿人;
试一试{
writer1=新的PrintWriter(“plugins/Guildplate/PlayerData/”+sender.getName()+”.yml,“UTF-8”);
作者1.println(“性别:男性”);
writer1.close();
}捕获(FileNotFoundException |不支持编码异常e){
File File=new文件(“plugins/Guildplate/PlayerData/”+sender.getName()+“.yml”);
}
}
else if(参数等于(“女性”)){
印刷撰稿人;
试一试{
writer1=新的PrintWriter(“plugins/Guildplate/PlayerData/”+sender.getName()+”.yml,“UTF-8”);
作者1.println(“性别:女性”);
writer1.close();
}捕获(FileNotFoundException |不支持编码异常e){
File File=new文件(“plugins/Guildplate/PlayerData/”+sender.getName()+“.yml”);
}
}
否则{
sender.sendMessage(“/char性别”);
}

我正在使用.yml文件测试它是否工作,因为某种原因,它不会创建播放器.dat

您错误地使用了
args
数组:

if (args.equals("male"))

String[]
永远不可能是
字符串,因此这两个字符串都会失败。假设
args
转换如下:

"/char gender male" -> new String[]{"/char", "gender", "male"}
您需要使用:

if (args[2].equals("male"))

此外,您的错误检查应该是:

if (args.length <= 2)

if(args.length标签中不能有空格,因此:

if(label.equalsIgnoreCase(“字符性别”))


不起作用

你能发布堆栈跟踪吗???
if (args[2].equals("male"))
else if (args[2].equals("female"))
if (args.length <= 2)