【问题标题】:Java read line from console longer than 1024 charactersJava 从控制台读取的行超过 1024 个字符
【发布时间】:2015-06-09 13:51:24
【问题描述】:

我有以下代码,第一个分支用于文件读取(适用于任何大小的文件行),但我是否尝试对控制台输入进行相同的操作,读取块在 1024 个字符之后。由于除了源流之外没有任何区别,我认为 System.in 中存在一些限制。

能否请您指出一些我可以更改 System.in 的属性(?内部缓冲区大小?)。

谢谢!

        if (input != null) {
            reader = new MyReader(new BufferedReader(new InputStreamReader(new FileInputStream(input))));
        } else {
            reader = new MyReader(new BufferedReader(new InputStreamReader(System.in)));
        }

【问题讨论】:

  • 我猜你的控制台的实现会有一些限制......
  • 从文件重定向标准输入时是否也会发生这种情况?
  • 命令行控制台是什么操作系统?
  • MacOS,我试过 ITerm 和嵌入式控制台。两者的问题都是一样的......

标签: java io console


【解决方案1】:

也许你可以这样做:

StringBuilder sb = new StringBuilder();
int ch = 0;
while((ch = System.in.read()) != '\n') {
    sb.append((char)ch);
}
System.out.println(sb.toString());

【讨论】:

  • System.in 在默认情况下被缓冲,这段代码不会做任何有用的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-20
  • 2018-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-27
相关资源
最近更新 更多