不能转换BinaryReader.将PeekChar或ReadChar转换为String
本文关键字:转换 ReadChar String PeekChar BinaryReader 不能 | 更新日期: 2023-09-27 18:13:47
每当我尝试将BinaryReader
PeekChar
或ReadChar
转换为字符串时,它会给我一个错误
错误1 'System.IO.BinaryReader.PeekChar()'是一个'方法',即在给定的上下文中无效
如何转换?下面是我的代码示例:
private void openTextToolStripMenuItem_Click(object sender, EventArgs e)
{
myPath = textBox3.Text;
BinaryReader objBinReader = new BinaryReader(File.Open(myPath, FileMode.Open));
listBox1.Hide();
richTextBox1.Show();
richTextBox1.Text = "";
do
{
try
{
richTextBox1.Text = richTextBox1.Text + objBinReader.ReadChar.toString();
}
catch
{
MessageBox.Show(objBinReader.PeekChar.toString());
}
} while (objBinReader.PeekChar.toString() != "-1");
objBinReader.Close();
}
提前感谢!
您错过了()
的方法调用
richTextBox1.Text = richTextBox1.Text + objBinReader.ReadChar().ToString();
和
objBinReader.PeekChar().ToString()
实际上,您在char
之后读取文件char
。为什么不一下子就做完呢?
private void openTextToolStripMenuItem_Click(object sender, EventArgs e)
{
listBox1.Hide();
richTextBox1.Text = File.ReadAllText(textBox3.Text);
richTextBox1.Show();
}
BinaryReader的另一个解决方案是
private void openTextToolStripMenuItem_Click(object sender, EventArgs e)
{
listBox1.Hide();
// when building string in a loop use StringBuilder
StringBuilder sb = new StringBuilder();
// do not close BinaryReader manually, put using instead
using (BinaryReader objBinReader = new BinaryReader(File.OpenRead(textBox3.Text)))
{
// PeekChar() is a method, notice ()
while (objBinReader.PeekChar() != -1)
sb.Append(objBinReader.ReadChar()); // ReadChar() is a method as well
}
richTextBox1.Text = sb.ToString();
richTextBox1.Show();
}