十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
使用FileStream读写文件
创新互联主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、自适应网站建设、程序开发、网站优化、微网站、重庆小程序开发等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的成都网站制作、做网站、网站设计、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体。
文件头:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
读文件核心代码:
byte[] byData = new byte[100];
char[] charData = new char[1000];
try
{
FileStream sFile = new FileStream("文件路径",FileMode.Open);
sFile.Seek(55, SeekOrigin.Begin);
sFile.Read(byData, 0, 100); //第一个参数是被传进来的字节数组,用以接受FileStream对象中的数据,第2个参数是字节数组中开始写入数据的位置,它通常是0,表示从数组的开端文件中向数组写数据,最后一个参数规定从文件读多少字符.
}
catch (IOException e)
{
Console.WriteLine("An IO exception has been thrown!");
Console.WriteLine(e.ToString());
Console.ReadLine();
return;
}
Decoder d = Encoding.UTF8.GetDecoder();
d.GetChars(byData, 0, byData.Length, charData, 0);
Console.WriteLine(charData);
Console.ReadLine();
写文件核心代码:
FileStream fs = new FileStream(文件路径,FileMode.Create);
//获得字节数组
byte [] data =new UTF8Encoding().GetBytes(String);
//开始写入
fs.Write(data,0,data.Length);
//清空缓冲区、关闭流
fs.Flush();
fs.Close();
2、使用StreamReader和StreamWriter
文件头:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
StreamReader读取文件:
StreamReader objReader = new StreamReader(文件路径);
string sLine="";
ArrayList LineList = new ArrayList();
while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null!sLine.Equals(""))
LineList.Add(sLine);
}
objReader.Close();
return LineList;
StreamWriter写文件:
FileStream fs = new FileStream(文件路径, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
//开始写入
sw.Write(String);
//清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close();
===================================================================================
方式一:用FileStream
//实例化一个保存文件对话框
SaveFileDialog sf = new SaveFileDialog();
//设置文件保存类型
sf.Filter = "txt文件|*.txt|所有文件|*.*";
//如果用户没有输入扩展名,自动追加后缀
sf.AddExtension = true;
//设置标题
sf.Title = "写文件";
//如果用户点击了保存按钮
if(sf.ShowDialog()==DialogResult.OK)
{
//实例化一个文件流---与写入文件相关联
FileStream fs = new FileStream(sf.FileName,FileMode.Create);
//获得字节数组
byte [] data =new UTF8Encoding().GetBytes(this.textBox1.Text);
//开始写入
fs.Write(data,0,data.Length);
//清空缓冲区、关闭流
fs.Flush();
fs.Close();
}
方式二:用StreamWriter
//实例化一个保存文件对话框
SaveFileDialog sf = new SaveFileDialog();
//设置文件保存类型
sf.Filter = "txt文件|*.txt|所有文件|*.*";
//如果用户没有输入扩展名,自动追加后缀
sf.AddExtension = true;
//设置标题
sf.Title = "写文件";
//如果用户点击了保存按钮
if (sf.ShowDialog() == DialogResult.OK)
{
//实例化一个文件流---与写入文件相关联
FileStream fs = new FileStream(sf.FileName, FileMode.Create);
//实例化一个StreamWriter--与fs相关联
StreamWriter sw = new StreamWriter(fs);
//开始写入
sw.Write(this.textBox1.Text);
//清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close();
}
string FileName = Guid.NewGuid().ToString() + ".txt"; //GUID生成唯一文件名
StringBuilder ckpw = new StringBuilder("\"凭证输出\", \"V800\", \"001\", \"东风随州专用汽车有限公司\"," + "\"F89自由项16\", \"F90审核日期:\"");
if (!FileIO.IsFolderExists(Server.MapPath("pzsc")))
FileIO.CreaterFolder(Server.MapPath(""), "");
string filePath = Server.MapPath("pzsc") + "\\" + FileName;
System.IO.StreamWriter sw = new System.IO.StreamWriter(filePath, false, Encoding.GetEncoding("GB2312"));//创建的时候需要指定编码格式,默认是UTF-8,中文显示乱码
sw.WriteLine(ckpw.ToString());
sw.Close();
方式三:用BinaryWriter
//实例化一个保存文件对话框
SaveFileDialog sf = new SaveFileDialog();
//设置文件保存类型
sf.Filter = "txt文件|*.txt|所有文件|*.*";
//如果用户没有输入扩展名,自动追加后缀
sf.AddExtension = true;
//设置标题
sf.Title = "写文件";
//如果用户点击了保存按钮
if (sf.ShowDialog() == DialogResult.OK)
{
//实例化一个文件流---与写入文件相关联
FileStream fs = new FileStream(sf.FileName, FileMode.Create);
//实例化BinaryWriter
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(this.textBox1.Text);
//清空缓冲区
bw.Flush();
//关闭流
bw.Close();
fs.Close();
}
C#缓存流示例------用缓存流复制文件
C#文件处理操作必须先导入命名空间:using System.IO;
背景:使用VS2005、一个按钮、一个窗体、C#缓存流、把D:\KuGoo\爱得太多.wma复制到D:\并更名为love.wma,即:D:\love.wma
在按钮的Click事件中添加如下代码:
private void button1_Click(object sender, EventArgs e)
{
//创建两个文件流 一个是源文件相关,另一个是要写入的文件
FileStream fs = new FileStream(@"D:\KuGoo\爱得太多.wma",FileMode.Open);
FileStream fs2 = new FileStream(@"D:\love.wma",FileMode.Create);
//创建一个字节数组,作为两者之间的媒介
//好比两个人拿苹果,这个字节数组就好比一个篮子,一个人作死的把苹果送到篮子里面,
//而我就可以作死得拿苹果,通过这个媒介我们互不干扰,
//不需要互相等待【她往篮子里面放了苹果我才可以去拿】,提高了效率
byte[] data = new byte[1024];
//创建两个缓冲流,与两个文件流相关联
BufferedStream bs = new BufferedStream(fs);
BufferedStream bs2= new BufferedStream(fs2);
//fs作死的读,fs2作死的写,直到fs没有字节可读fs2就不写了
//好比,一个人作死的往篮子里面丢苹果,另一个人作死得往篮子里面拿苹果,直到篮子里面没有苹果拿了为止
//即--那个人没有苹果往篮子里面放了
while(fs.Read(data,0,data.Length)0)
{
fs2.Write(data,0,data.Length);
fs2.Flush();
}
//关闭流,好比两个人累了,都要休息 呵呵o(∩_∩)o...
fs.Close();
fs2.Close();
}
C#内存流示例-----用内存流来读取图片
C#文件处理操作必须先导入命名空间:using System.IO;
背景:一个窗体、一个pictureBox、一个lable[没有选择图片,lable的text为"图片未选择"],在pictureBox1的Click事件中添加如下代码:
private void pictureBox1_Click(object sender, EventArgs e)
{
//实例化一个打开文件对话框
OpenFileDialog op = new OpenFileDialog();
//设置文件的类型
op.Filter = "JPG图片|*.jpg|GIF图片|*.gif";
//如果用户点击了打开按钮、选择了正确的图片路径则进行如下操作:
if(op.ShowDialog()==DialogResult.OK)
{
//清空文本
this.label1.Text = "";
//实例化一个文件流
FileStream fs = new FileStream(op.FileName, FileMode.Open);
//把文件读取到字节数组
byte[] data = new byte[fs.Length];
fs.Read(data, 0, data.Length);
fs.Close();
//实例化一个内存流---把从文件流中读取的内容[字节数组]放到内存流中去
MemoryStream ms = new MemoryStream(data);
//设置图片框 pictureBox1中的图片
this.pictureBox1.Image = Image.FromStream(ms);
}
}
存储过程把一个或多个T-SQL语句组合到一个逻辑单元中,在SQL Server数据库中保存为一个对象。在存储过程创建后,它的T-SQL定义保存在sys.sql_module系统目录视图中。当存储过程首次执行的时候,SQL Server创建执行计划并把它存储在计划内存缓存中。然后SQL Server就能对这个存储过程的后续执行重用计划。和没有编译且没有准备好的等价即时查询相比,存储过程更加快速可靠。还可以创建使用.net公共语言运行时(CLR)程序集的存储过程。使用存储过程有很多好处,而没什么坏处:帮助在数据层聚集T-SQL代码。帮助大的即时查询减少网络流量。促进代码的可复用性。淡化数据获取的方法。与视图不同,存储过程可以利用刘控制技术、临时表、表变量等。存储过程对查询响应时间的影响比较稳定。存储过程能作为控制层,排除了直接访问SQL Server实例和它的数据库表可能引起的安全隐患。存储过程能用于多种不同的活动,包括简单的SELECT、INSERT、UPDATE、DELETE等。T-SQL活动能混合在单个存储过程中,或者以模块形式创建存储过程,为每一个或一组任务创建多个存储过程。没有参数的存储过程的基本语法如下:CREATE PROCEDURE [Schema_name.] procedure_nameAS { sql_statement [...n ] }带参数的存储过程可以接收外部传入参数多达2100个。语法如下:CREATE {PROC|PROCEDURE} [Schema_name.] procedure_name [; number][ { @parameter [ type_schema_name.] data_type } [VARYING ] [=default] [OUT | OUTPUT ] [READONLY] ] [ , ... n][ WITH procedure_option [ , ... n] ][FOR REPLICATION ]AS {sql_statement [;] [ ...n] | method_specifier }
Using FolderBrowserDialog As New FolderBrowserDialog
If FolderBrowserDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim 资料夹 As String() = System.IO.Directory.GetFiles(FolderBrowserDialog.SelectedPath, "*")
For Each 文件 In 资料夹
MsgBox(My.Computer.FileSystem.ReadAllText(文件)) '读取数据
My.Computer.FileSystem.WriteAllText(文件, "数据", False) '写入数据
Next
End If
End Using
用自定义类型数组处理:
Private Structure PhoneBook
Dim ID As Integer
Dim name As String
Dim sex As Boolean
Dim phone As String
Dim email As String
Dim group As String '这里也可以设置为整数型,用序号来代表各个组
End Structure
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim PBook() As PhoneBook, tmpstr() As String, iCount As Integer = 0
Dim str As IO.StreamReader = New IO.StreamReader("C:\1.txt", System.Text.Encoding.Default)
Do Until str.EndOfStream
tmpstr = Split(str.ReadLine(), ",")
If tmpstr.Length = 6 Then
ReDim Preserve PBook(iCount)
PBook(iCount).ID = CInt(tmpstr(0))
PBook(iCount).name = tmpstr(1)
If tmpstr(2) = "男" Then PBook(iCount).sex = True Else PBook(iCount).sex = False
PBook(iCount).phone = tmpstr(3)
PBook(iCount).email = tmpstr(4)
PBook(iCount).group = tmpstr(5)
iCount += 1
End If
Loop
str.Close()
End Sub
用.ini文件来存储。比如内容是:[UserInfo]UserName=admin读取方式:charachUserName[20];GetPrivateProfileString("UserInfo","UserName",NULL,achUserName,20,"c:\\userInfo.ini");
VB.NET编程读取txt文本文档中的数据,并把数据保存为数组,代码如下:
'写配件文件
Private Sub saveIni(ByVal filePath As String, ByVal str As String)
Dim sw As StreamWriter = New StreamWriter(filePath, True) 'true是指以追加的方式打开指定文件
sw.WriteLine(str)
sw.Flush()
sw.Close()
sw = Nothing
End Sub
'读配件文件
Private Function readIni(ByVal filePath As String)
Dim iniDt As New DataTable
iniDt.Columns.Add("text")
iniDt.Columns.Add("value")
Try
Dim sr As StreamReader = New StreamReader(filePath, System.Text.Encoding.Default)
Dim line As String = ""
While Not sr.EndOfStream
Dim str = sr.ReadLine()'读取当前行
iniDt.Rows.Add(New String() {
str(0),
str(1)
})
End While
sr.Close()
sr = Nothing
Catch ex As Exception
End Try
Return iniDt
End Function