私はCSVファイルから読み込んで解析し、データを保存しています。非常に簡単です。
現在、それを行うために標準的なreadLine()
方法を使用しており、私はこの処理ループからいくつかの余分な効率を絞り出そうとしています。それらが舞台裏にどれだけ隠れているかはわかりませんが、への各呼び出しgetLine
は、それに伴うすべての苦痛を伴う新しいOS呼び出しであると思いますか?入力の各行でOS呼び出しの料金を払いたくありません。巨大なバッファを提供し、一度に多くの行でバッファを埋めるようにします。
しかし、私はフルラインだけを気にします。1つのバッファ読み取りからの部分的な行を維持して、2番目のバッファ読み取りに追加して完全な行を作成する必要はありません。これは、醜くて煩わしいことです。
それで、私のためにこれを行う方法はありますか?ほとんどあるはずのようです。x行数またはxバイトで読み取るように指示できるが、最後の部分行を出力しないメソッド、またはメモリバッファーを管理するための簡単な方法でさえ、部分文字列を処理するためのコードの量を最小限に抑えますいただければ幸いです。Boostを使用することもできますが、標準のC ++にメソッドがある場合は、それを使用したいと思います。
ありがとう。