文件流 FileStream
C# 中的流是面向对象的抽象概念,是二进制字节的序列
文件是保存在磁盘中的进制字节,使用固定格式存储信息
流是一种动态的特殊的数据结构
首先我们在Unity中创建一个空物体,在创建一个C#脚本(CreateOrReadXML )并挂载上
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;
using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;
using UnityEngine;
public class CreateOrReadXML : MonoBehaviour
{
private string _path;
private void Awake()
{
_path = Application.dataPath + "/Test.txt";
}
private void Start()
{
}
private void OnGUI()
{
if (GUILayout.Button("写入"))
{
// 打开文件(FileMode.OpenOrCreate 如果文件不存在则创建新的文件,如果文件存在则直接读取)
FileStream fileStream = File.Open(_path, FileMode.OpenOrCreate);
// 写入文件
// 需要将字符串转成字节
byte[] bytes = Encoding.UTF8.GetBytes("Hello world");
fileStream.Write(bytes, 0, bytes.Length);
// 关闭文件
fileStream.Close();
}
if (GUILayout.Button("读取"))
{
// 打开文件
FileStream fileStream = File.Open(_path, FileMode.Open);
// 读取文件
byte[] bytes = new byte[fileStream.Length];
fileStream.Read(bytes, 0, bytes.Length);
// 关闭文件
fileStream.Close();
string str = Encoding.UTF8.GetString(bytes);
print(str);
}
}
}
读写流 StreamWriter|StreamReader
using System.IO;
using UnityEngine;
namespace FileS
{
public class FileTest : MonoBehaviour
{
private void OnGUI()
{
if (GUILayout.Button("写入磁盘"))
{
StreamWriter streamWriter = new StreamWriter(Application.dataPath + "/Test2.txt", true);
streamWriter.WriteLine("我是读写流");
streamWriter.Close();
}
if (GUILayout.Button("读取数据"))
{
StreamReader reader = new StreamReader(Application.dataPath + "/Test2.txt");
while (!reader.EndOfStream)
{
print(reader.ReadLine());
}
reader.Close();
}
}
}
}