java - 读取InputStream只是到第一个ENTER?

标签 java inputstream

我有一个输入流(用户在控制台中输入的内容,System.in.read();)

现在我想稍后将此输入流放入一个字符串中,它看起来像这样:

    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 ,它永远不会发生。 ENTER 的 int 是多少?这样我的任务就结束了。

谢谢!

最佳答案

这是关于执行此操作的标准方法

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

关于java - 读取InputStream只是到第一个ENTER?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6170748/

相关文章:

java - 为什么 BufferedReader 无法读取 InputStream 的最后一行?

java - 无法两次读取相同的InputStream

java - 将 json 数据存储到数据库的最佳实践

java - Eclipse 调试器中的 Stacktrace

java - 如何更改禁用的 JComboBox 上(显示的)所选项目?

java - 安装具有传递依赖/依赖树的第三方库?

java - 在 Grails 中放置文本文件的位置,以及如何获取路径

java - IOUtils.copy 和 IOUtils.copyLarge 非常慢

java - 来自 Java 的 Redis 基准测试

java - InputStream "int read(byte[] b)"方法参数是引用吗?