簡體   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