- 148 名前:デフォルトの名無しさん [2007/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
|

|