Java jMonkey错误,out.write-in-if循环

Java jMonkey错误,out.write-in-if循环,java,jmonkeyengine,Java,Jmonkeyengine,我有一个小的jMonkey程序,里面有很多球。我想每秒记录每个球的3d向量 当我运行代码时: @Override public void simpleUpdate(float tpf) { if(getTimer().getTimeInSeconds() >= 1) { out.write("\n" + count + " "); out.write(ball1g.getLocalTranslation() + " "); out

我有一个小的jMonkey程序,里面有很多球。我想每秒记录每个球的3d向量

当我运行代码时:

@Override
public void simpleUpdate(float tpf) {
    if(getTimer().getTimeInSeconds() >= 1) {
        out.write("\n" + count + "  ");
        out.write(ball1g.getLocalTranslation() + "  ");
        out.write(ball2g.getLocalTranslation() + "  ");
        out.write(ball3g.getLocalTranslation().toString());
        count++;
        getTimer().reset();
    }
}
我的文本文件是完全空白的。但当我跑步时:

@Override
public void simpleUpdate(float tpf) {
    out.write("this can be anything bigger than one character wide");
    if(getTimer().getTimeInSeconds() >= 1) {
        out.write("\n" + count + "  ");
        out.write(ball1g.getLocalTranslation() + "  ");
        out.write(ball2g.getLocalTranslation() + "  ");
        out.write(ball3g.getLocalTranslation().toString());
        count++;
        getTimer().reset();
    }
}
它是有效的,只是在我的实际数据之间有大量的字符

out.write("");
什么都不做,至少是这样

out.write(" ");
或者更大


我做错什么了吗?如果没有,我如何解决这个问题,但完成相同的任务?

您的程序是否有一个干净的出口?如果您的输出是缓冲的,并且您每隔一段时间只对其写入一次,那么它可能需要很长时间才能恢复。如果在刷新程序之前终止程序,并且程序没有正确关闭流,则缓冲区内容将永远不会被刷新,生成的文件将为空

o如果您总是在编写(调用
if
外部的代码可能比调用内部的代码多得多),缓冲区将填充得更快,因此至少有一些数据会被刷新


在代码完成写入后(在
if
的末尾),尝试显式调用
out.flush()
,看看这是否解决了您的问题。

您是如何检查是否写入了空字符串的?我想我不知道您的意思。。但是这个循环是一次又一次地运行的,所以在我的数据点之间我有100个空格。当你把空字符串作为输入时,你希望流写什么?@SantoshGokak我知道它为什么这样做。这纯粹是一个测试用例,显示了当空字符串存在时打印的不规则性,而当它被删除时根本不打印。威尔将在10小时内授予赏金。刷新输出流实现了这一点。非常感谢