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

文件及文件夹操作:
一、流:
文件流: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 }

打开图片

 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         }

时间: 2024-07-29 17:46:48

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

linux 下文件及文件夹操作常用命令

文件及文件夹操作 1.创建文件夹 " mkdir 文件夹名 " 这样就会在当前目录创建一个文件夹. 2.复制文件 cp 3.剪切 mv 编辑文件内容 vi 或vim 一般来说vi是基本功能,vim比vi功能强大一些. 一些基本的操作是 打开或新新文件   vi 文件路径 打开时是只读模式,要写编辑先输入一个i 这时就是插入模式 就可以录入你想录的信息了. 当录完后,可以保存退出,方法是 先按"ESC"退出插入模式,然后 输入 :wq  然后回车,就保存退出了. 也可

fopen(),fclose() 打开/关闭文件

打开/关闭/刷新流 1. fopen() 打开流 功能: 1)fopen()打开由 path指定的一个文件. 2)fdopen()获取一个先有的文件描述符,并使一个标准的I/O流与该描述相结合.此函数常用于由创建管道和网络通信函数小所返回的描述符.因为这些特殊类型的文件不能用标准I/O fopen函数打开,我们必须先调用设备专用函数以获得一个文件描述符,然后用fopen使一个标准I/O流与该描述符相关联. 3)fropen()在一个指定的流上打开一个指定的文件,如若该流已经打开,则先关闭该流.若

对SD卡中的文件与文件夹进行监控

Android系统API提供了FileObserver抽象类(Linux的INotify机制)来监听系统/sdcard中的文件或文件夹,FileObserver类能对sdcard中的文件及文件夹的打开.创建.移动和删除操作进行监控.下面看看代码实现: //设置所要监控的文件或文件夹 mFileObserver = new SDCardFileObserver(Environment.getExternalStorageDirectory().getPath()); //开始监听 mFileObs

C# 操作文件类,文件夹存在判断,创建,文件内容读写。

1.File 类 --转自msdn 常用方法: 名称 说明 AppendAllLines(String,?IEnumerable<String>) 向一个文件中追加行,然后关闭该文件. 如果指定文件不存在, 此方法会创建一个文件,向其中写入指定的行,然后关闭该文件. AppendAllLines(String,?IEnumerable<String>,?Encoding) 使用指定的编码向一个文件中追加行,然后关闭该文件. 如果指 定文件不存在,此方法会创建一个文件,向其中写入指定

Python文件操作:文件的打开关闭读取写入

Python文件操作:文件的打开关闭读取写入 一.文件的打开关闭 Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作. 文件操作都分为以下几个步骤: 1.打开文件. 2.操作文件:读/写. 3.关闭文件. 操作系统中的文件默认处于存储状态,读写文件时需要请求操作系统打开一个要在当前程序操作的对象,打开不存在的文件可以创建文件.open()方法通过接收"文件路径"以及“文件打开模式”等参数来打开一个文件,并且返回文件对象.打开后的文件只能在当前程序

尝试打开或创建物理文件 REATE FILE 遇到操作系统错误 5(拒绝访问)

尝试打开或创建物理文件 'E:\Library.mdf' 时,CREATE FILE 遇到操作系统错误 5(拒绝访问.). 最佳回答: 这是因为SQL Server的启动帐户(一般是system或某个操作系统管理员),对E盘根目录没有创建文件的权限.右击E盘,在属性里查看“安全”选项卡里查看用户的权限.查看启动帐户是谁,运行services.msc,在服务管理器里找到SQL Server服务,然后看“登录”选项卡. 本人补充发现,是权限的问题..->任务管理器:找到sqlservr.exe用户名

asp.net 文件操作小例子(创建文件夹,读,写,删)

静态生成要在虚拟目录下创建文件夹 来保存生成的页面 那么就要对文件进行操作 一.创建文件夹 using System.IO; string name = "aa"; string path = Server.MapPath("") + "\\" + name; if (Directory.Exists(path)) { Response.Write("<script>alert('文件夹已存在了!');history.go(

代码验证C#执行”文件打开关闭操作“耗时

2017-04-19 部门经理习惯用C#做数据清洗,遇到个需要验证的问题,在一个万次左右循环内对文件执行打开关闭操作,比在循环前打开文件.循环后关闭文件耗时多多少. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Diagnostics; using Sy

尝试打开或创建物理文件时,CREATE FILE 遇到操作系统错误 5

执行 Transact-SQL 语句或批处理时发生了异常. (Microsoft.SqlServer.ConnectionInfo)尝试打开或创建物理文件时,CREATE FILE 遇到操作系统错误 5(拒绝访问.) 解决方法:设置源文件的安全属性为当前用户可以访问的权限.(属性-安全)