只读到第一个ENTER的InputStream?

时间:2011-05-29 22:10:20

标签: java inputstream

我有一个Inputstream(用户在consol中输入的东西,System.in.read();)

现在我想将此InputStream稍后放入String中,它看起来像这样:

    InputStream input = System.in;


    StringBuffer out = new StringBuffer();
    byte[] b = new byte[4096];
    for (int n; (n = input.read(b)) != -1;) {
        out.append(new String(b, 0, n));
    }

    System.out.println(out);

我知道有很多更好的方法。但我想完成这一个。唯一的问题是!= -1,它永远不会发生。怎么回事?所以我的结局。

THX!

3 个答案:

答案 0 :(得分:2)

这是关于标准的做法

Scanner scan = new Scanner(System.in);
String line = scan.nextLine();

答案 1 :(得分:0)

取决于操作系统,它应该是10或13个值中的一个。

答案 2 :(得分:0)

通常[CONTROL] + [D]会结束您的应用程序的输入,这应该为您的方法调用返回-1。根据操作系统的不同,您可能需要再次尝试[ENTER],再按[CONTROL] + [D]和[ENTER]。