从任何字符串创建后,为什么我的ByteArrayInputStream为空?

时间:2017-08-05 18:34:44

标签: java groovy inputstream

基本上我(使用groovy)使用以下结构:

InputStream in = new ByteArrayInputStream("one two three four".getBytes());

但是当我打印其内容时:

println(in.text)

我看到空行。为什么这样?以及如何在InputStream中保存这些字节?

2 个答案:

答案 0 :(得分:3)

您的原始代码在Groovy控制台中给出了编译错误:

InputStream in = new ByteArrayInputStream("one two three four".getBytes());
println(in.text)

1 compilation error:

expecting EOF, found 'in' at line: 1, column: 13

in是Groovy中的保留字。将其更改为inn一切正常:

InputStream inn = new ByteArrayInputStream("one two three four".getBytes())
println(inn.text)

使用此输出:

one two three four

答案 1 :(得分:0)

字节在InputStream,您只是打错了。尝试使用InputStreamString转换为Scanner,然后将其打印出来。

Scanner s = new Scanner(in).useDelimeter("\\Z");
while (s.hasNext()) {
    System.out.print(s.next());
}