[英]java.util.Scanner read remaining content
使用java.util.Scanner
实例,是否可以返回所有剩余内容? 我的情况是,一旦读取String
的许多字段,我只想获取剩下的任何内容并将其存储在其他位置。 例如,我的内容可能包括:
1,2,Some Garbage with \' special characters and so on
我将使用作为分隔符构造扫描器,
两次调用getInt()
,然后在一次调用中返回"Some Garbage with \\' special characters and so on"
。
作为AlexR的答案 ,最好读取原始流-但在我的情况下,该流已消耗且无法读取。
Scanner
有一个特殊字符/分隔符, 用于读取“全部”: \\\\A
因此,如果您需要其余的扫描仪,则可以对其进行更改:
scanner.useDelimiter("\\A");
String content = scanner.hasNext() ? scanner.next() : null;
使用Scanner不能做到这一点。 您可以尝试将String next(Pattern pattern)
传递给它的多行模式,例如$
:
Pattern p = Pattern.compile("$", Pattern.MULTILINE);
我没有尝试过,但可能会起作用。 只要在输入中还剩下几行时,别忘了检查它。
但是我认为更好的方法是使用循环中的普通read(byte[])
方法从包装的输入流中read(byte[])
。 这是因为扫描仪未按原样读取流。 参加阅读单独的领域。 它做得很好。 在您的情况下,您只想读取“ blob”,因此可以使用有效负载流读取它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.