- ベストアンサー
データファイルの読み込みについて
はじめまして 100MB、200万行程度のファイルを解析しようとしています。そこで詰まっている所なのですが、 例えば、100行まで読み込んで一旦ストリームを閉じ、他で解析し、次の読み込みで101行からデータを取り 出すといったような処理を実現できないでしょうか? 読み込みは、BufferedReaderのreadLine()で行って おります。BufferedReaderのmark()、reset()で 出来そうな気配もありますが、 なにぶん初心者なもので、全く的外れかもしれません。 どなたかご教授お願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 >二つのストリームを開いているので、 片方を閉じないと、処理出来ないかなと 思うのです。 2つくらいなら、両方開いても問題ないと思いますが。。。 まだ説明不足の情報があるとか。。。
その他の回答 (4)
- taka451213
- ベストアンサー率47% (436/922)
こんばんは。 >ストリームを開きすぎるとどのような問題が発生するのでしょうか? いろいろあるとは思いますが、メモリー不足で・・・なんて事になりそうです。 (^^ゞ
お礼
素早いご回答ありがとうございます。 メモリ不足ですか…。 メモリ不足と言えば、OutOfMemoryErrorにはよく悩まされます(-_-;) まだまだ修行不足なもので。
- covachan
- ベストアンサー率38% (46/120)
DataInput系を使えばいいじゃないですか? そういった用途の為のクラスです。
お礼
ご指摘ありがとうございます。 確かにBufferedReaderにこだわり過ぎかもしれません。 DataInput系を検討してみようと思います。
- taka451213
- ベストアンサー率47% (436/922)
こんにちは。 閉じたら「mark」がなくなります・・・。 (^^ゞ
お礼
そうなんですか。ありがとうございます。 markは使えませんね…。
- ngsvx
- ベストアンサー率49% (157/315)
>一旦ストリームを閉じ、 閉じる必要があるのですか?
補足
説明不足でした。 二つのストリームを開いているので、 片方を閉じないと、処理出来ないかなと 思うのです。 双方を開いたまま処理する方法があるのかも しれませんが…。どうでしょうか?
補足
遅くなりました。ご回答ありがとうございます。 始めから、片方ずつ処理する方向で考えを進めていたので、 2つを開いたまま処理するというのには頭が回っていませんでした。 恥ずかしながら、説明不足と言うより勉強不足のようです。 頂いたご助言を元に勉強しなおして参ります。 ついでと言ってはなんですが、一つ質問させてください。 ストリームを開きすぎるとどのような問題が発生するのでしょうか? お時間がございましたら、教えて頂けると幸いです。