1、使用FileStream读写文件

文件头:

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(""), "file://pzsc/");
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);
}

}

转载于:https://www.cnblogs.com/xuwb/archive/2010/11/10/1873846.html

修改、读取txt文档相关推荐

  1. javaScript读取txt文档的FSO对象和ADODB.Stream对象

    转自:http://blog.163.com/chaosumin@126/blog/static/86387403201092793610651 在使用JavaScript读取txt文档时,一般使用j ...

  2. 记事本之修改非txt文档

    修改非txt文档,记事本可以吗?当然可以. 1)首先搜索记事本(notepad.exe),然后点鼠标右键,选以管理员身份运行 2)点击左上方文件,在点击打开,选择需要修改的文件. 3)需要把右下方的格 ...

  3. matlab通过变量调用txt文件路径,MATLAB使用load函数读取txt文档

    MATLAB在数据处理方面应用非常广泛.在众多的专业领域里,把各种手段获取的数据存入txt文档中非常常见.如果txt文件中数据为矩阵形式,通常可以采用简单的load命令来读取数据,然后在MATLAB中 ...

  4. 「 C++ MFC 」“读取.txt文档实例”讲解

    一.前言 本博客在MFC工程中,完成了对"读取.txt文档"功能的实战. 二.技术实现 整个程序分为三个过程:开始读文档.应用文档和停止读文档.         1. 开始读文档 ...

  5. C++读取TXT文档,分行分段解析,通过UDP组播发送

    TXT文档格式 航点序号 经度° 纬度° 高度m 速度m/s 悬停时间s 标志字节 1 114.363945 38.056252 20 2 5 1 2 114.363697 38.055994 20 ...

  6. Python读取.txt文档内容/读取text文件内容

    Python读取.txt文档内容/读取text文件内容; 读取txt后缀文件的内容的两种方式,简约易懂,复制粘贴即可食用,节约你宝贵的时间 文档全部数据一次性读取 # -*- coding: UTF- ...

  7. C语言 读取txt文档按行读取到新的txt文档

    如下图data.txt,需要把数据按17行读取到自动命名新建的txt文档里: 1-17行     1.txt 18-34行   2.txt -- #include <stdio.h> #i ...

  8. C语言读取txt文档中的数据

    1.说明    txt文档中的数据格式:前后数据用空格隔开:    数据来源:matlab读取彩图的R.G.B三层的像素值,分别存放在三个txt文档中,用C读取到一维数组.    动态申请数组,还是需 ...

  9. PHP如何读取txt文档域名集,并且生成数组/随机显示一个

    最近有朋友反馈我一个问题看我是否可以帮忙解决:需求就是网页需要跳转代码,用PHP写,读取一个域名集合包(也就是TXT文档),里面方着很多域名,让每访问一次随机跳转一个域名,怕是违法应用,没有答应帮忙, ...

  10. C# 读取.txt文档和.docx文档。npoi读取word文档

    1 NuGet包安装npoi 2 安装npoi 3 获取txt文档内容,不需要安装npoi.filePath是相对路径 public static string ReadFileContent(str ...

最新文章

  1. Servlet 的生命周期
  2. Windows Workflow Foundation(WWF)介绍
  3. uboot源码——环境变量
  4. iptable防火墙流程图
  5. sql server2008如果表中已经有很多条记录,再添加一个非空字段
  6. (转) 分布式-微服务-集群的区别
  7. 6.郝斌C语言笔记——流程控制
  8. .NET Standard详解
  9. 公众号600篇文章分类和索引
  10. 苹果或3月8日开新品发布会是真的吗?
  11. 铜护套氧化镁矿物质绝缘电缆
  12. 主动降噪(Active Noise Control)
  13. vue run build 错误 CssSyntaxError错误
  14. 汽车转向角度和转向半径的关系
  15. PHP正则匹配多个字符串返回匹配的结果
  16. kali渗透测试win10
  17. 分享一个好用的第三方登录框架
  18. 一个ios斗鱼app教程(链接)
  19. 2020四川大学计算机保研夏令营经验
  20. 程序员在家办公007

热门文章

  1. java mac 转换 整形_JAVA的整型与字符串相互转换
  2. oracle按照指定顺序读取,oracle按照指定顺序进行排序
  3. mysql简单聚合函数根据条件单表查询
  4. * 四、要求写一个方法:method。该方法要求传入一个数字n(n要小于10), * 该方法能够计算得到所有各位上的数字不超过n且每一位的数字都不重复的三位数的个数。
  5. c语言实验题数组逆序,【C语言】利用栈将数组中字符串逆序
  6. Spring+Hibernate+SpringMVC+MySql实现配置多个数据源!
  7. java使用三种循环打印99表_编程题:利用for循环打印 9*9 表
  8. 给数据减肥 让MySQL数据库跑的更快
  9. 《Python Cookbook 3rd》笔记(3.12):基本的日期与时间转换
  10. 人工智能工程师需具备的技能_2020年软件测试工程师需要具备的技能--需要学什么--面试题有哪些(灵魂拷问)...