JavaでScannerユーティリティを使用する場合、特定の行をスキャンする方法や、行を2回スキャンする方法はありますか? scanner.nextLine()を使用しているときと同じように、この行にもう一度戻るにはどうすればいいですか?または、どのように行を2回読むのですか?それは可能ですか?javaでスキャナを使用して特定の行をスキャンする方法は?
答えて
私はあなた自身がスキャナでこれを行うことはできませんが、BufferedInputStream
の方法mark()
とreset()
を使用して以前に読んだ位置に戻ることができます。
これは 'Scanner'がいくらかのバッファリングを行う可能性があるため、非常に壊れやすいでしょう。 – Henry
@Henryは同じスキャナを使用しません。 –
残念ながら何の
Scannerはstreamsを読み取るために作成されていないと、彼らは「ストア」、彼らが読んで情報をないました。インターネット上で何らかの送信を読んでいると、元に戻って再び読むことができません。スキャナはfilesをファイルからinput streamを作成し、すべての派手なエンコーディングとそのすべてを処理することでインターネット伝送と同様に処理します。
ファイルから行をもう一度読みたい場合や、別の行に戻す場合は、スキャナを閉じて新しいスキャナオブジェクトを作成し、再度優先行に移動してください。
クイック例:
一つのアプローチは、ループに次のようになります。
のは、私たちが名を含むファイル内を検索するためにそれを頼む上記の名前の名前を探しているとしましょう(名前)を読み取り、それが私たちの名前と一致するかどうかを確認し、読み取った行を保存している場合はスキャナを閉じ、新しいスキャナオブジェクトを作成して再度ループ処理を開始し、今度は、私たちが探していた名前の前に線に着いたときに止まり、バン!
私の意見では、スキャナから読み取ったすべての情報(例の名前)をある種のlist(この例ではarraylistが完璧です)に保存することになります。そのリストを使用して2行目を読み込み、5行目(リストの5番目の要素)を読むか、前の行に戻す
希望するコードが必要な場合はお気軽にお尋ねください:)
スキャナはそれを行うために構築されていなかった - Plusは、スキャナクラスは、すべての
.nextLine()はちょうどあなたの全体の行(最初の1)を与えるで任意の行のいずれかの履歴を保持せず、 .next()は最初の単語を与えるだけです。行/単語/文字は格納されません。
- 1. 特定のサブディレクトリを持つワイルドカードを使用してディレクトリをスキャンする方法
- 2. Javaを使用してオペレーティングシステムを特定する方法は?
- 3. kuduスキャナを使用してkuduの特定の行をフィルタリングする
- 4. 特定の行の後にスキャナを停止する方法
- 5. Javaを使用してJTableで特定のセルをチェックする方法は?
- 6. スキャナを使用してjavaで空白文字列を入力する方法
- 7. javaループで1スキャナを使用する方法
- 8. Javaを使用してファイル内の特殊文字を特定する方法
- 9. Java(Collectionなし)のSingly/Doubly Linked Listでスキャナを使用してコンソール入力を行う方法は?
- 10. Javaスクリプトを使用してボタンクリックで特定のフォームを表示する方法
- 11. linuxとwindowsサーバーで実行中のjavaプロセスをリストし、使用中のJavaバージョンを特定する方法
- 12. .ICSファイルをスキャンし、特定の行を.CSVに印刷します。 [JAVA]
- 13. github java API(org.eclipse.egit.github。*)を使用して特定のコミットハッシュを検索する方法
- 14. Java IOを使用して特定の行を検索して印刷する
- 15. 特定のフォルダから.batまたは.vbsスクリプトをJavaプログラミングを使用して実行する方法
- 16. Javaを使用してWifiネットワークをスキャンして接続する
- 17. javaのコンストラクタ引数としてスキャナ入力を使用する
- 18. Quartzを使用して特定のタイムゾーンで特定の時刻にジョブを1回実行する方法
- 19. スキャナを使用してファイル名を要求するJAVA
- 20. SparkとJavaRDDを使用して特定の行を取り出す方法は?
- 21. 春の起動時にJavaライブラリを使用してネットワークからスキャナを特定または検出する方法はありますか?
- 22. javaでコンソールの特定の行を削除する方法
- 23. JDBCを使用してデータベースの特定の行数を表示する方法
- 24. GWTを使用してflextable内の特定の行をフリーズする方法
- 25. anglejsを使用して特定の行の値を削除する方法
- 26. Java APIを使用しているときにElasticSearchで特定のアナライザを使用する方法
- 27. スキャナを使用して再帰文法を読む方法
- 28. スキャナ入力キーを使用したJava
- 29. Javaを使用してリモートウィンドウマシンでコマンドを実行する方法
- 30. Javaを使用してSeleniumでghostdriverを実行する方法
このように使用するつもりはありません。入力は、順番に消費される要素の1つのシーケンス(より良い用語がない)です。 – Henry
スキャナは行の履歴を保持しません。あなたはそれを自分で行う必要があります。 ArrayListやそのようなものに行を格納してください。 – slipperyseal