例如:
个人理解:首先是创建一个文件流,这个文件流对象相当于连接外部文件和
* 程序内部的一条管道(管道里面是文件流创建时所指向的文件,相当于一条水管,水是
* 文件内容),然后这个管道(流)搭建好了,但是要 *** 作流里面的文件内容,还要
* 有读取或者写入的数据 *** 作(文件内容读写器),所以需要读写器(StreamWriter类
* 和StreamReader类)进行读写 *** 作,读取流中的数据或者将数据写入流中,流只是它的载体来的。
步骤: 1、创建一个文件流对象(FileStream类,FileMode(文件模式,打开,创建,创建或者打开等),FileAccess( 指的是 读还是写,还是读写) )
* 2、创建相应的读写器(StreamWriter类和StreamReader类)
* 3、执行读写 *** 作
* 4、关闭读写器
* 5、关闭文件流
例子:
以上是文本文件的读写 *** 作,接下来搞一个二进制的
像图片等其他类型就无法使用文本的方式进行读写,这里使用二进制的方式,步骤也是和文本的方式一样。首先是用FileStream类创建一个文件流,然后建立相应的读写器,读取或者写入数据,最后关闭读写器和文件流。在读取的时候,使用ReadBytes()方法,参数是读取的文件流的字节数组长度,返回一个字节数组。复制相当于将读取的文件流的内容(例子中的by字节数组)写入新的文件中去。
此外,还有很多流,网络流,内存流等。
如果您要在文件内部使用写入 *** 作,具体要看您使用的编程语言和文件类型。通常情况下,文件写入 *** 作可以使用以下方式实现:使用文件流进行写入 *** 作。这种方式适用于文本文件和二进制文件。通过文件流可以打开文件,并在文件中写入数据。使用文件流进行写入 *** 作的代码示例(C#语言):
plaintext
Copy code
// 打开文件
FileStream fileStream = new FileStream("filename.txt", FileMode.Create)
// 创建写入器
StreamWriter writer = new StreamWriter(fileStream)
// 写入数据
writer.Write("Hello World")
// 关闭写入器和文件流
writer.Close()
fileStream.Close()
使用内置函数进行写入 *** 作。这种方式适用于文本文件。不同的编程语言提供了不同的内置函数来进行文件读写 *** 作。使用内置函数进行写入 *** 作的代码示例(Python语言):
plaintext
Copy code
# 打开文件
file = open("filename.txt", "w")
# 写入数据
file.write("Hello World")
# 关闭文件
file.close()
无论使用哪种方法,都要注意在写入完成后及时关闭文件,以避免文件句柄泄漏和数据丢失。
StreamWriter类有几个构造函数,其中有一个构造函数有两个参数(string path,bool append),其中path为文件的路径,如果该文件存在,则可以向其覆盖或追加;如果文件不存在,则创建一个新文件。bool类型值append确定是否将数据追加到文件。如果文件存在且append为true,则数据将追加到文件中首先要理解这个方法:ReadLine这个方法每被调用一次,只会读取一行内容.下一次再次被调用时,会从下一行开始读取,当然,也只会读取一行
FileStream fs = new FileStream("user.game",FileMode.Open)
StreamReader sr = new StreamReader(fs)
//运行正常
string type = sr.ReadLine()//这句代码被执行后,文件中第一行的内容已经被读取完了,也就是阅读器已经运行到了第一行最末的位置,下次再读取时会从下一行开始读取
if (type.Equals("Turtle"))
{
//内容被执行了
}
//运行错误
if(sr.ReadLine().Equals("Turtle"))//这里你又一次调用了这个方法,所以阅读器从这里再读取你的文件中第二行的内容,因为你的文件只有一行内容,所以第二行内容肯定是读不到内容的,所以为空
{
//内容没有被执行
}
测试方法是:在你文件中加多第二行内容,再运行,就可以发现这个时候sr.ReadLine()已经变成了第二行的内容了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)