Form1.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11. namespace WindowsFormsIOBinaryWriterAndReader
  12. {
  13. public partial class Form1 : Form
  14. {
  15. public Form1()
  16. {
  17. InitializeComponent();
  18. }
  19. //写入
  20. private void button1_Click(object sender, EventArgs e)
  21. {
  22. if (textBox1.Text == string.Empty)
  23. {
  24. MessageBox.Show("要写入的文件内容不能为空");
  25. }
  26. else
  27. {
  28. //设置保存文件的格式
  29. saveFileDialog1.Filter = "二进制文件(*.dat)|*.dat";
  30. if (saveFileDialog1.ShowDialog() == DialogResult.OK)
  31. {
  32. //使用“另存为”对话框中输入的文件名实例化FileStream对象
  33. //第一个参数表示要保存的文件的完整路径
  34. //第二个参数表示要保存的文件的模式
  35. //第三个参数表示访问权限
  36. FileStream myStream = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
  37. //使用FileStream对象实例化BinaryWriter二进制写入流对象
  38. BinaryWriter myWriter = new BinaryWriter(myStream);
  39. //以二进制方式向创建的文件中写入内容
  40. myWriter.Write(textBox1.Text);
  41. //关闭当前二进制写入流
  42. myWriter.Close();
  43. //关闭当前文件流
  44. myStream.Close();
  45. textBox1.Text = string.Empty;
  46. }
  47. }
  48. }
  49. //读取
  50. private void button2_Click(object sender, EventArgs e)
  51. {
  52. //设置打开文件的格式
  53. openFileDialog1.Filter = "二进制文件(*.dat)|*.dat";
  54. if (openFileDialog1.ShowDialog() == DialogResult.OK)
  55. {
  56. textBox1.Text = string.Empty;
  57. //使用“打开”对话框中选择的文件名实例化FileStream对象
  58. FileStream myStream = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
  59. //使用FileStream对象实例化BinaryReader二进制写入流对象
  60. BinaryReader myReader = new BinaryReader(myStream);
  61. //PeekChar():返回下一个可用的字符,没有可用字符或流不支持的字符时为-1
  62. if (myReader.PeekChar() != -1)
  63. {
  64. //以二进制方式读取文件中的内容
  65. textBox1.Text = Convert.ToString(myReader.ReadString());
  66. }
  67. //关闭当前二进制读取流
  68. myReader.Close();
  69. //关闭当前文件流
  70. myStream.Close();
  71. }
  72. }
  73. }
  74. }