有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java有没有更有效的文件写入方法?

我正在写一个Bukkit(针对那些不知道的人:“简化运行和管理Minecraft服务器的Mod和插件。包括论坛和文档。”)将用户命令存储到各自文件中的插件。我觉得我写的代码效率非常低

每次启动PlayerCommandPrepreprocessEvent(每次输入开头带有“/”的消息时),我都会创建一个变量,如下所示

PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(fM.retrievePlayerFile(e.getPlayer().getName()), true)))

然后我写入特定播放器的文件,然后关闭输出

效率低下?是的,我想是的

有没有更简单、更有效的方法

提前谢谢

编辑:fM.retrievePlayerFile(Player player)这是:

public File retrievePlayerFile(String player) {
    player = player.toLowerCase();
    return (new File(plugin.getDataFolder(), "/users/" + player));
}

共 (1) 个答案

  1. # 1 楼答案

    如果不能每次打开和关闭文件,则可能会加快速度
    也许你们可以一直打开它(不确定你们的具体情况)

    如果没有,您可以尝试其他优化方法

    1)当用户注销时,您可以将其关闭。2) 如果用户在N分钟内没有活动,可以使用一些启发式方法关闭它。2) 一个可能的想法是只打开那些真正最活跃的部分。你可以通过某种方式跟踪用户在过去M分钟内的活动,选择前K名用户,只打开他们的文件

    代码本身并没有那么低效,至少我看不出你如何能提高文件的写入效率。我建议你改变一下你的整体算法/设计,并尝试改进