将字符串打印到java.io.Console对象

时间:2015-06-25 15:26:01

标签: java printing console

我正在制作一个多人游戏,每个玩家在屏幕上都有自己的输入/输出控制台。我在尝试这样做时遇到了一些麻烦。我不希望每个玩家看到其他玩家的输入/输出。

使用类比,我想做playerOneConsole.out.println("Player One String");而不是System.out.println("Player One String");,而每个人都可以看到玩家的东西。

阅读完一些文档之后,我尝试了这个,但它没有按预期工作,因为它抛出了NullPointerException:

public class Player {

    String myName;
    Console myConsole;

    public Player(String name) {
        myName = name;
        myConsole = System.console();
    }


    public void takeTurn(String playerOptions){
        myConsole.writer().print(playerOptions); //This is not right.
    }
}

我希望playerOptions专门打印到该播放器的控制台,而不是System控制台。

顺便说一句,如果有所不同,我正在使用NetBeans IDE 8.0.2。

1 个答案:

答案 0 :(得分:6)

使用google.maps.DistanceMatrixService().getDistanceMatrix时,您必须从控制台执行Java应用程序,例如Windows CMD或Linux终端。大多数IDE不会通过控制台执行Java,因此#define STATE_1 (uint8_t)(0x00) #define STATE_2 (uint8_t)(0x01) ... #define STATE_n (uint8_t)(0x..) void HandleState(uint8_t state) { switch(state) { case (uint16_t)STATE_1: // handle state 1 break; case (uint16_t)STATE_2: // handle state 2 break; ... case (uint16_t)STATE_n: // handle state n break; default: break; } } 会返回java.io.Console

顺便说一下,这段代码:

System#console

确实如此:)