繁体   English   中英

java.util.Scanner读取剩余的内容

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM