2012-02-24 134 views
0

私は最初の行ファイルを文字列に読み込むためにBufferedReaderを試していました。これはどうすればいいですか?また、ファイル全体を文字列に読み込む方法は?前の行を繰り返すことなく、readline(int line)のような特定の行を読むにはどうすればいいですか?BufferedReaderでファイルの1行目を読み取る方法は?

File namefile = new File(root, ".name"); 
FileReader namereader = new FileReader(namefile); 
BufferedReader in = new BufferedReader(namereader); 
+0

http://stackoverflow.com/questions/7175161/how-to-get-file-read-line-by-lineそれはそれはあなたが達成したい何か似ている助けになることができるかどうかを確認 – Devjosh

+0

(あなたのコメントから回答まで)ファイル内の任意の行にアクセスしてファイル全体をその点まで(ランダムアクセス)読まずに知りたいのであれば、質問の文言を明確にする必要があります。 – Dev

+0

@dev申し訳ありませんが、私は英語を話しますが、プログラミングの背景があまりないので、これを正しく言い切るのは少し難しいです。理解していただきありがとうございます。 –

答えて

4

BufferedReader.readLine()を使用して最初の行を取得できます。

readLine()次の呼び出しは、あなたの第二ラインを取得します注意し、次の3行目....

EDIT:あなたのコメントとして、特定の行を指定したい場合は
お勧め - Apache Commons FileUtilsを使用して、FileUtils.readLines()を使用したい場合があります。それはList<String>を得て、特定の行を得ることを含め、どのようなリストのようにも処理できます。ファイル全体を読み込み、List<String>にその行を設定するため、オーバーヘッドが増えることに注意してください。

+0

特定の行を指定することはできますか? –

+0

@BinoyBabu:特定の行が必要な場合は編集を見てください - あなたはApacheのコモンズを使用したいと思うかもしれません - FileUtils' – amit

+1

@Binoyあなたの探しているものなら、その基準を含めるように質問を編集してください。 – Dev

4

私は、BufferedReader.readLine()の何が問題になっていますか?

1行のテキストを読み取ります。行は、改行( '\ n')、復帰( '\ r')、改行の直後に続く改行のいずれかで終了すると見なされます。

(私もreadFile()方法のいずれかの兆候が表示されない - ?あなたが見たものを文書化)個人的に

私はそうでないと、途中でInputStreamReaderの代わりFileReaderに包まれFileInputStreamを使用することを好みますそれは常にプラットフォームのデフォルトのエンコーディングを使用します - あなたは何が欲しいのですか?

+0

ファイル全体を読み込みますか?私はBufferedReader.readLine(1)のような行を指定することはできません。 –

+0

@BinoyBabu:いいえ、文書化されているように、行を読み込みます。 ** readFile **ではなく** readLine **メソッドの名前を見てください。 –

+1

リーダがバッファされているので、BufferedReader#readLineは、おそらく一度だけ呼び出されたとしても、元のソースから最初の行以上を読み込む可能性があります。パフォーマンスの観点からは、これはほとんどの場合はおそらく無関係ですが、機能の違いが関係する状況があります。 – jarnbjo

3
final File namefile = new File(root, ".name"); 
final FileReader namereader = new FileReader(namefile); 
final BufferedReader in = new BufferedReader(namereader); 
in.readLine(); 
関連する問題