初识IO流——文本文件的读和写操作

  1.想要实现文本文件的读和写操作,我们需要了解StreamWriter类和StreamReader类。

  StreamWriter是专门用来处理文本文件的类,可以方便地向文本文件中写入字符串。同时也负责重要的转换和处理向FileStream对象写入工作。

  StreamReader是专门用来读取文本文件的类,StreamReader可以从底层Stream对象创建StreamReader对象的实例,而且也能指定编码规范参数。创建StreamReader对象后,它提供了许多用于读取和浏览字符数据的方法。

  2.做文本写入操作时,我们需要先给定文件所在目录和文件名,然后开始创建StreamWriter对象,其中,StreamWriter类为我们定义了多个构造方法,这个大家可以去看StreamWriter类的相关文档,做一下详细了解。下面一个构造方法基本上是我们经常用到的。

1 public StreamWriter(string path, bool append, Encoding encoding);

  其中path就是我们的文件所在路径。Append则为布尔类型,当Append为true时,每做一次写操作都会在文件原有文本内容的基础上附加我们写入的内容,当Append为false时,每次写操作的内容都会覆盖文件原有的文本内容。第三个参数显而易见,就是编码了,我们可以在这里指定我们写入的编码类型。

  下面是一个文本写操作的实现:

 1 //文件写操作
 2         public void WriteText(string text)
 3         {
 4
 5             string path = @"C:\Users\Administrator\Desktop\ThisIsATxt.txt";
 6
 7             using (StreamWriter writer = new StreamWriter(path, true, Encoding.UTF8))
 8             {
 9
10                 writer.WriteLine(text);
11
12             }
13         }

  3.做文本读操作时,其创建对象的过程与文本写操作类似。只是参数略有变化,这个大家也可以去看StreamReader类的相关文档,详细了解一下StreamReader类为我们提供了哪些构造方法。同样,下面我们做文本读操作的时候经常用到构造方法。

1 public StreamReader(Stream stream, Encoding encoding);

  下面则是一个文本读操作的实现:

 1 //文件读操作
 2         public string ReadText()
 3         {
 4
 5             string path = @"C:\Users\Administrator\Desktop\ThisIsATxt.txt";
 6
 7             using (StreamReader reader = new StreamReader(path, Encoding.UTF8))
 8             {
 9
10                 string Read_text = reader.ReadToEnd();
11
12                 return Read_text;
13             }
14
15         }

   

  注:关于using,可以参照https://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=ZH-CN&k=k(VB.USING);k(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV4.0%22);k(DevLang-VB)&rd=true做详细了解。

时间: 2024-10-24 10:18:46

初识IO流——文本文件的读和写操作的相关文章

初识IO流之小型资源管理器

初次接触到IO流,根据书本上的知识,加上自己的摸索,发现了一些好玩的事情.(书本上的知识或多或少,有时候不足以解决我们的问题!这时候我们就应该自己去求解!!! 所以我们学习的时候要抱有探索的精神,求知若渴是帮助我们获取更多知识的一种积极的精神态度,需要保持) 小型资源管理器 该项目主要是为了加载电脑磁盘中存在的所有文件夹和文件(directory,file) 这时候我遇到了第一个问题:书本上只有将指定的磁盘设为根节点,在窗体TreeView中添加该磁盘中的文件夹 (我去,那如果我的电脑上分了几十

初识IO流——创建目录和文件

刚开始学习IO流我们首先接触到的是File类和Directory类,这两个类是静态类,他们的方法也都是静态方法,因此调用的时候直接用类来调用. 同时,又有FileInfo类和DirectoryInfo类,这两个类是非静态类,因此调用FileInfo类和DirectoryInfo类中的方法需要用对象来调用,FileInfo类和DirectoryInfo类里面的方法也分别与File类和Directory类中的方法差不多.下面我们来看看它们分别是如何创建目录和文件的. 1.Directory类创建目录

Python open()函数文件打开、读、写操作详解

一.Python open()函数文件打开操作 打开文件会用到open函数,标准的python打开文件语法如下:open(name[,mode[,buffering]])open函数的文件名是必须的,而模式和缓冲参数都是可选的.比如说有个a.txt的文本文件,存放在c:\text下,那么你要打开它可以这样操作:>>>x = open(r 'c:\text\a.txt')用读的模式打开这个路径下的对应文本文件,如果要打开对像不存在,程序会报错. 二.open()函数文件打开模式参数常用值有

(MariaDB/MySQL)MyISAM存储引擎读、写操作的优先级

MariaDB/MySQL中使用表级锁的存储引擎(例如MyISAM.Aria(MariaDB对MyISAM引擎的改进,前身是MyISAM))在读(select).写操作(insert.delete.update.replace)上有优先级的概念.默认情况下,写操作的优先级高于读操作.注:不适用于InnoDB存储引擎. 以MyISAM为例.当有进程正在写MyISAM表的时候,又有新的读操作.写操作出现,则会先执行完所有的写操作,等写完后才会读表.实际上并非总是先执行完所有写操作,因为有系统变量ma

标准文件IO详解(五)---读和写流

C库函数中提供了三种不同类型的读写函数,这三种不同类型的读写方式如下: 一个字符一个字符的进行读写 以换行符为界一行一行的进行读写 一块一块的进行读写 ====================================================== 以字符为单位的读写函数: fgetc函数 和 fputc 函数 函数原型: 函数参数: stream:要操作的文件流指针 返回值: 调用成功时返回读取到的字符 调用失败时返回 EOF(-1) 读取到文件末尾时返回 EOF(-1) 注意:当

IO流 文本文件读取方式

/* * 第一种读取方式 */ import java.io.*; public class FileReaderDemo{ public static void main(String[] args) throws IOException {   //创建一个文件读取对象和指定名称的文件相关联 //要保证该文件是已经存在的,如果不存在,会发生异常FileNotFoundException FileReader fr=new FileReader("demo.txt"); //调用读取

初识IO流——IO流实战之记录错误日志

在web项目中经常会遇到各种各样的异常,除了调试之外,我们还可以通过文本来记录异常.这样也可以迅速找出异常所在. 下面写一个小测试.页面加载的时候在Page_Load()方法中给出一个异常,捕获到异常后就调用我们写好的方法来将异常写入文本文件中. 具体实现: 1 protected void Page_Load(object sender, EventArgs e) 2 { 3 4 string test_str = "I see you !"; 5 6 try 7 { 8 9 Int

IO流(文本文件读取练习)

1 package com.yyq; 2 import java.io.*; 3 /* 4 * 读取文件中的内容,输出到控制台上,输出到一个文件中 5 */ 6 public class IODemo1 { 7 public static void main(String[] args) { 8 FileReader fr = null; 9 FileWriter fw = null; 10 try{ 11 //1.定义输入输出流 12 fr = new FileReader("FileWrit

关于Hibernate读和写操作属性链接的问题

在Hibernate中读数据的时候几级链接都可以,也就是说下面的hql语句是没有问题的: String hql=" select p from Person p where p.child.school.grade......=Xxx"; 上面的hql语句在执行的时候是没有任何问题的. 但是在Hiberante的写数据的时候就不允许两级以上的链接了,也就是说下面的hql语句会产生问题的: String hql=" delete from Question q where q.