使用java.util.Scanner实例,是否有可能返回所有剩余内容?我的场景是,一旦我读取了String中的许多字段,我只想获取剩下的内容并将其存储在其他地方。例如,我的内容可能包括:
1,2,Some Garbage with \' special characters and so on我将使用,作为分隔符来构造扫描器,调用getInt()两次,然后希望在一次调用中返回"Some Garbage with \' special characters and so on"。
发布于 2012-03-18 17:18:36
使用Scanner没有“好”的方法可以做到这一点。您可以尝试像$这样将String next(Pattern pattern)传递给它的多行模式
Pattern p = Pattern.compile("$", Pattern.MULTILINE);
我还没有试过这个,但它可能会起作用。当您的输入中还有几行时,不要忘记检查它。
但我认为更好的方法是在循环中使用普通的read(byte[])方法读取包装的输入流。这是因为扫描器没有按原样读取流。它负责读取单独的字段。它做得很好。在您的例子中,您只需要读取"blob",所以只需使用payload stream读取它即可。
发布于 2017-01-17 17:29:49
作为AlexR's answer points,读取原始流应该更好-但在我的例子中,它被消耗了,无法读取。
Scanner to read 'all': \\A中有特殊的字符/分隔符。因此,如果您想要扫描仪的其余部分,您可以更改它:
scanner.useDelimiter("\\A");
String content = scanner.hasNext() ? scanner.next() : null;https://stackoverflow.com/questions/9757171
复制相似问题