zoukankan      html  css  js  c++  java
  • 文件及文件夹操作(打开关闭创建流)

    文件及文件夹操作:
    一、流:
    文件流:FileStream。用来操作文件。
    命名空间:System.IO;
    使用流的步骤:——最原生的流的操作。——通用性最强的。
    1.创建流。
    FileStream fs = new FileStream("文件路径",FileMode枚举);
    FileMode.Appen - 如果存在,就打开追加;如果不存就新建
    FileMode.Create - 如果存在,覆盖。如果不存在就新建。
    FileMode.OpenOrCreate。如果存在就打开,不存在就新建。
    2.读取或写入流。

    (1)..写入流:
    第一步:需要把字符串,变成二进制数组:
    byte[] aaa = System.Text.Encoding.Default.GetBytes(txt.Text);
    第二步:写入流
    fs.Write(aaa, 0, aaa.Length);
    //第一个参数:要被写进去的二进制数据;
    //第二个参数:开始的位置,一般都是0
    //第三个参数:要往流里面写入的长度。一般都是数组的length

    (2).读取流:
    第一步:准备一个二进制的数组,用来接收二进制数据。
    byte[] aaa = new byte[fs.Length]; //数组的长度,一般使用流的长度来定义,因为这个数组就是用来存储流中的数据的。
    第二步:使用进行读取,把读出来的内容放在上面的二进制数组中。
    fs.Read(aaa,0,aaa.Length);
    //第一个参数:被读出来的二进制数据;
    //第二个参数:开始的位置,一般都是0。从哪开始读
    //第三个参数:要读取的长度。一般都是数组的length。即流的长度

    第三步:把读出的二进制数组变成字符串。
    string s = System.Text.Encoding.Default.GetString(aaa);

    3.关闭流。
    fs.Close();

    文件操作时,防止内存泄漏的方法:
    法一:try...finally
    法二:using(){ }
    案例:
    private void btnSave_Click(object sender, EventArgs e)
    {
    FileStream fs = null;
    try
    {
    //创建流
    fs = new FileStream("aaa.txt", FileMode.Create);

    //把文本框的字符串,变成1010101二进制byte[]
    byte[] aaa = System.Text.Encoding.Default.GetBytes(txt.Text);
    //写入流
    fs.Write(aaa, 0, aaa.Length);
    }
    finally
    {
    //关闭流
    if (fs != null)
    {
    fs.Close();
    }
    }
    }

    private void button1_Click(object sender, EventArgs e)
    {
    //创建流
    using (FileStream fs = new FileStream("aaa.txt", FileMode.Open))
    {
    //准备一个空的二进制数组,用来接收读取出来的内容
    byte[] aaa = new byte[fs.Length];
    //读取流
    fs.Read(aaa, 0, aaa.Length);
    //把二进制转为字符串
    txt.Text = System.Text.Encoding.Default.GetString(aaa);

    //关闭流
    fs.Close();
    }
    }

    对于文本(字符串)形式的文件流可以使用StreamWriter和StreamReader来简化操作。
    1.创建流
    FileStream fs = new FileStream("bbb.txt",FileMode.Create);
    //FileStream fs = new FileStream("bbb.txt",FileMode.Open);
    2.套读取器或写入器。
    StreamWriter writer = new StreamWriter(fs);
    //StreamReader reader = new StreamReader(fs);
    3.使用读取器或写入器对文件流进行操作。
    writer.Writer("字符串");
    //string s = reader.ReadToEnd();
    4.关闭读取器和文件流。
    writer.Close();
    //reader.Close();
    fs.Close();

    对于文本(字符串)形式的文件还可以再简化。——不用写流的创建,关闭,直接使用流的读取器和写入器

    打开读取器

     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 
    12 namespace WindowsFormsApplication1
    13 {
    14     public partial class Form1 : Form
    15     {
    16         public Form1()
    17         {
    18             InitializeComponent();
    19         }
    20 
    21         private void btnSave_Click(object sender, EventArgs e)
    22         {
    23             FileStream fs = null;
    24             try
    25             {
    26                 //创建流
    27                 fs  = new FileStream("aaa.txt", FileMode.Create);
    28 
    29                 //把文本框的字符串,变成1010101二进制byte[]
    30                 byte[] aaa = System.Text.Encoding.Default.GetBytes(txt.Text);
    31                 //写入流
    32                 fs.Write(aaa, 0, aaa.Length);
    33             }
    34             finally
    35             {
    36                 //关闭流
    37                 if (fs != null)
    38                 {
    39                     fs.Close();
    40                 }
    41             }
    42         }
    43 
    44         private void button1_Click(object sender, EventArgs e)
    45         {
    46             //创建流
    47             using (FileStream fs = new FileStream("aaa.txt", FileMode.Open))
    48             {
    49                 //准备一个空的二进制数组,用来接收读取出来的内容
    50                 byte[] aaa = new byte[fs.Length];
    51                 //读取流
    52                 fs.Read(aaa, 0, aaa.Length);
    53                 //把二进制转为字符串
    54                 txt.Text = System.Text.Encoding.Default.GetString(aaa);
    55 
    56                 //关闭流
    57                 fs.Close();
    58             }
    59         }
    60 
    61         private void button2_Click(object sender, EventArgs e)
    62         {
    63             FileStream fs = new FileStream("bbb.txt", FileMode.Create);
    64             StreamWriter writer = new StreamWriter(fs);
    65             writer.Write(txt.Text);
    66             writer.Close();
    67             fs.Close();
    68         }
    69 
    70         private void button3_Click(object sender, EventArgs e)
    71         {
    72             FileStream fs = new FileStream("bbb.txt", FileMode.Open);
    73             StreamReader reader = new StreamReader(fs);
    74             txt.Text = reader.ReadToEnd();
    75             reader.Close();
    76             fs.Close();
    77         }
    78 
    79         private void button4_Click(object sender, EventArgs e)
    80         {
    81             StreamWriter writer = new StreamWriter("ccc.txt",true, Encoding.Default);
    82             writer.Write(txt.Text);
    83             writer.Close();
    84         }
    85 
    86         private void button5_Click(object sender, EventArgs e)
    87         {
    88             StreamReader reader = new StreamReader("ccc.txt",Encoding.Default);
    89             txt.Text =  reader.ReadToEnd();
    90             reader.Close();
    91         }
    92 
    93         private void Form1_Load(object sender, EventArgs e)
    94         {
    95 
    96         }
    97     }
    98 }
    View Code

    打开图片

     1         private void button1_Click(object sender, EventArgs e)
     2         {
     3             DialogResult result = open.ShowDialog();
     4             if (result == System.Windows.Forms.DialogResult.OK)
     5             {
     6                 string fileName = open.FileName;
     7                 //pictureBox1.ImageLocation = fileName;
     8                 //pictureBox1.Image = Image.FromFile(fileName);
     9                 FileStream fs = new FileStream(fileName, FileMode.Open);
    10                 pictureBox1.Image = Image.FromStream(fs);
    11                 fs.Close();
    12             }
    13         }
    View Code
  • 相关阅读:
    js 回车调用后台事件
    获取下拉框选中的值:
    MVC 3.0 在各个版本IIS中的部署
    创建Windows域
    SQL Server 事务、异常和游标
    IIS配置PHP环境(快速最新版)
    js操作select下拉框
    如何清除访问远程网络时保存的密码
    免费Web服务
    Firefox不支持event解决方法
  • 原文地址:https://www.cnblogs.com/m123/p/4511292.html
Copyright © 2011-2022 走看看