文件及文件夹操作(打开关闭创建流)

文件及文件夹操作:
一、流:
文件流: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
原文地址:https://www.cnblogs.com/m123/p/4511292.html