Groovy-stream.getText的字符丢失

Groovy-stream.getText的字符丢失,groovy,Groovy,我正在测试一个Groovy脚本: InputStream is = awsS3Stream.getObjectContent(); def lines = is.getText("UTF-8"); println "lines:"+lines; Pattern pattern = ~/type\"\:\"[A-Z][a-z]*\"/; Matcher matcher = pattern.matcher(lines); ... 我注意到,根据awsS3Stream对象的大小,变量行可能没有所有的

我正在测试一个Groovy脚本:

InputStream is = awsS3Stream.getObjectContent();
def lines = is.getText("UTF-8");
println "lines:"+lines;
Pattern pattern = ~/type\"\:\"[A-Z][a-z]*\"/;
Matcher matcher = pattern.matcher(lines);
...
我注意到,根据awsS3Stream对象的大小,变量行可能没有所有的文本-它的结尾缺失。我希望使用StringBuffer而不是String可以解决这个问题,但事实并非如此。我希望有人知道一个基于Groovy的解决方案,因为我对Groovy不是很熟悉。。。非常感谢你的时间

另外,我所看到的问题与模式无关——我不需要在模式中看到变量行并不总是包含所有数据。

您是否尝试将字母字符串与一个大写字母匹配?如果不是,问题在于您的regexp。要将大小写字符串与任意数量的大写字母匹配,请使用以下命令:

Pattern pattern = ~/type\"\:\"[A-Za-z]*\"/;

问题在于数据进入s3,而不是我如何检索它。

tbh,不确定它是否与groovy相关
getText
只是读取所有流不确定为什么会出现问题,但您是否尝试过使用
is.eachLine()
is.filterLine()
?看看GDK InputStream API@todd-w-crone我试着使用带BufferedReader的readLine br=new BufferedReader(新的InputStreamReader(是“UTF-8”);但是得到了相同的结果。我不认为您可以向我发送导致
is.text
数据丢失的文件副本?我现在真的很好奇。@todd-w-crone是的,我可以。我不确定什么是最好的方法。你能给我发个电子邮件地址吗?是的,现在只有一封信的首字母。稍后我将不得不使用NodeTest之类的字符串进行测试,我需要为模式做更多的工作,但现在我从中得到了我需要的东西。我在最初的消息中添加了更多内容,以澄清模式不是我看到问题的地方