C#, C♯, C#相談室 Part42at TECH
C#, C♯, C#相談室 Part42 - 暇つぶし2ch148:デフォルトの名無しさん
07/08/31 10:58:54
ファイルへの書き込みで質問があります。

using (TextWriter stream = createStream(filePath, Encoding.GetEncoding(932))) {
 foreach (string line in hogeList) {
  stream.WriteLine(line);
 }
}

というような感じで、5千万行(約5G)ファイルに書き込むのですが、
3千万行(約3G)ほど書き込んだ所で以下のような例外が出てしまいました。
この例外発生時はディスク容量に余裕がある状態でした。

GetBytes() または GetByteCount() を呼び出す前に、Convert() 操作を完了するか、または Encoder.Reset() を呼び出さなければなりません。エンコーダ '日本語 (シフト JIS)' フォールバック 'System.Text.InternalEncoderBestFitFallback'。
System.ArgumentException: GetBytes() または GetByteCount() を呼び出す前に、Convert() 操作を完了するか、または Encoder.Reset() を呼び出さなければなりません。エンコーダ '日本語 (シフト JIS)' フォールバック 'System.Text.InternalEncoderBestFitFallback'。
場所 System.Text.DBCSCodePageEncoding.GetBytes(Char* chars, Int32 charCount, Byte* bytes, Int32 byteCount, EncoderNLS encoder)
場所 System.Text.EncoderNLS.GetBytes(Char* chars, Int32 charCount, Byte* bytes, Int32 byteCount, Boolean flush)
場所 System.Text.EncoderNLS.GetBytes(Char[] chars, Int32 charIndex, Int32 charCount, Byte[] bytes, Int32 byteIndex, Boolean flush)
場所 System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
場所 System.IO.StreamWriter.Dispose(Boolean disposing)
場所 System.IO.TextWriter.Dispose()

見た感じEncodingの設定でコケてるように見えますが、意味が分りません。
もしかして○ギガ以上のファイルを作れない、といった感じの制限があるのでしょうか。

・Win2000
・VisualC# 2005 ExpressEdition
・.net framework2.0


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch