LoadFileを使用せずにファイルをRichTextBoxに読み込みたい(進行状況を表示したい場合があります)。ファイルにはASCII文字のみが含まれています。
私はファイルをチャンクで読み取ることを考えていました。
私は次のことをしました(これは機能しています):
const int READ_BUFFER_SIZE = 4 * 1024;
BinaryReader reader = new BinaryReader(File.Open("file.txt", FileMode.Open));
byte[] buf = new byte[READ_BUFFER_SIZE];
do {
int ret = reader.Read(buf, 0, READ_BUFFER_SIZE);
if (ret <= 0) {
break;
}
string text = Encoding.ASCII.GetString(buf);
richTextBox.AppendText(text);
} while (true);
私の懸念は:
string text = Encoding.ASCII.GetString(buf);
byte[]
RichTextBoxにを追加することはできません。
私の質問は次のとおりです。
読み取られるすべてのチャンクに新しい文字列オブジェクトが割り当てられますか?
RichTextBoxにテキストを追加するためだけに文字列オブジェクトを作成する必要がないより良い方法はありませんか?
または、ファイル(StreamReader.ReadLine)から行を読み取り、返された文字列をRichTextBoxに追加する方が効率的ですか?