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