c#中txtxmljson⽂件的读写操作⼀、txt⽂件
c#中主要可以通过以下三种⽅式进⾏读写操作,注意都需要引⼊System.IO命名空间
1.使⽤File类读写⽂件
//读取⽂件,把每⼀个⾏⽂本读取成⼀个字符串,返回⼀个字符串的数组
string[] array = File.ReadAllLines(“⽂本路径”)
//通过字符串数组形式写⼊⽂件
python爬虫是什么百科File.WriteAllLines("⽂本路径",new string[]{"第⼀⾏的内容","第⼆⾏的内容","第三⾏的内容"})
windows程序设计第7版pdf//读取⽂件,把所有⽂本读取成⼀个字符串并返回
string s = File.ReadAllText(“⽂本路径”)
//通过字符串形式写⼊⽂件
File.WriteAllText("⽂本路径", "xx xxxx")
/
/读取⽂件,该⽅法可以读取每个字节故可以处理所有类型的⽂件
byte[] byteArray = File.ReadAllBytes("⽂件路径")
//通过给定字节数组写⼊⽂件
File.WriteAllBytes("⽂件路径", byteArray)
2.使⽤FileStream读写⽂件
public enum FileMode
{
//创建⼀个新的⽂件如果该⽂件已存在会引发异常。
CreateNew = 1,
//创建⼀个新的⽂件如果该⽂件已存在会覆盖它
Create = 2,
/
/打开现有⽂件
Open = 3,
//打开⼀个⽂件,如果不存在创建⼀个新的⽂件
OpenOrCreate = 4
}
//将⽂件1数据读到⽂件2
FileStream readStream = new FileStream("⽂件路径1", FileMode.Open)
FileStream writeStream = new FileStream("⽂件路径2", FileMode.Create)
//在while循环中持续从原始⽂件读取字节块并存⼊缓存数组中,再从缓存数组读到⽬标⽂件中
byte[] data = new byte[count]
while (true)
{
int length = readStream.Read(data, 0, data.Length);//将流数据读⼊data数组
if (length == 0)
{
//读取结束
break;
ajax工作原理异步}
else
{
for (int i = 0; i < length; i++)
{
Console.Write(data[i] + "");
}
writeStream.Write(data, 0, length)
}
}
//NOTE : 最后别忘了把流关闭,(浪费可耻=。=)
readStream.Close()
writeStream.Close()
3.使⽤StreamReader和StreamWriter读写⽂件
//1.创建⽂本读取流
StreamReader reader = new StreamReader("⽂本路径")
/
/我要⼀次读⼀⾏
while(true)
{
string str = reader.ReadLine()
if (str == null) break
Console.WriteLine(str)
}
//我⼀次性读完(我全都要)
string str = reader.ReadToEnd()
Console.WriteLine(str)
//我要⼀个字符⼀个字符读
while(true)
{
int res = reader.Read()链表c语言程序计算结点个数
if (res == -1){ break; }
else
{
Console.Write((char)res);
}
}
//NOTE : 勿忘我
reader.Close()
/
/2.创建⽂本写⼊流,如果该⽂件存在会被覆盖
StreamWriter writer = new StreamWriter("⽂本路径")
while(true)
{
string s = Console.ReadLine()
if (s == "q")
break;
//写⼊⼀个字符串
writer.Write(s)
//写⼊⼀个字符串并换⾏
writer.WriteLine(s)
}
//NOTE : 勿忘我
writer.Close()
⼆、xml⽂件
可扩展标记语⾔,被设计⽤来传输和存储数据。
1<?xml version="1.0" encoding="UTF-8"?>
2<root>
3<student stuId="9527">
4<name>XiaoMing</name>
5<age>18</age>
6<sex>1</sex>
7</student>
8<student stuId="9528">
9<name>XiaoFang</name>
10<age>25</age>
11<sex>0</sex>
12</student>
13<student stuId="9529">
14<name>XiaoMai</name>
15<age>20</age>
16<sex>1</sex>
17</student>
18</root>
在解析如上的xml⽂件之前先要介绍⼏个概念:
XmlNode:Xml节点有多种类型:属性节点、注释节点、⽂本节点、元素节点,都可以⽤XmlNode来表⽰。如<xxx></xxx>
XmlElement:继承⾃XmlNode,专指元素节点。XmlElement拥有众多对Attribute的操作⽅法,可以⽅便的对其属性进⾏读写操作(XmlNode也可以通过Attributes属性获取属性列表)
解析步骤如下:
//1.load xml⽂件
XmlDocument doc = new XmlDocument()
doc.Load("⽂件路径")
//2.先取到root节点
XmlNode node = doc.SelectSingleNode("root")
//3.获取root下student的集合
XmlNodeList nodeList = node.ChildNodes
//4.遍历student集合
for (int i = 0; i < nodeList.Count; i++) {
if(nodeList[i].Attributes["stuId"].Value == "9527"){
//例如到stuId为9527的元素节点,继续遍历下⾯的属性
foreach (XmlElement e in nodeList[i].ChildNodes) {
switch(e.name){
case"name":
//e.InnerText即为XiaoMing
break;
case"age":
//e.InnerText即为18
break;
case"sex":
//e.InnerText即为1
break;
}
}
}
}
//其他常⽤API
doc.GetElementsByTagName("student") //可以得到student元素集合
NOTE:解析时⼀般会根据xml格式创建⼀个对应的数据类⽂件,然后将读取到的xml数据信息写进数据类中
三、json⽂件
Json(JavaScript Object Notation) 是⼀种轻量级的数据交换格式。它基于ECMAScript的⼀个⼦集。 JSON采⽤完全独⽴于语⾔的⽂本格式,但是也使⽤了类似于C语⾔家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语⾔。易于⼈阅读和编写,同时也易于机器解析和⽣成(⽹络传输速率)
这⾥我们使⽤litjson进⾏解析json⽂本,⾸先需要去的⽹站下载litjson.dll 然后添加引⽤
解析步骤如下:
//json格式的txt
[
{"id":10001,"damage":100,"name":"飞龙在天"},
{"id":10002,"damage":120,"name":"隔⼭打⽜" },
]
//对应格式的数据类
public class Skill
{
public int id;
slideroompublic int damage;
public string name;
}
using LitJson;
List<Skill> skillList = new List<Skill>()
/
/1.使⽤JsonData对象去解析
JsonData jsonData = JsonMapper.ToObject(File.ReadAllText("xxx"));
foreach (JsonData temp in jsonData)
{
Skill skill = new Skill();
JsonData id = temp["id"];
JsonData name = temp["name"];
JsonData damage = temp["damage"];
skill.id = Int32.Parse(id.ToString());
skill.damage = Int32.Parse(damage.ToString());
skill.name = name.ToString();
skillList.Add(skill);
}
//2.使⽤泛型去解析json, 定义的类字段或者属性需要和json格式保持⼀致
//当json⽂件中只有⼀个数据项时:
Skill skill = JsonMapper.ToObject<Skill>(File.ReadAllText("⽂件路径"));
python解析json文件//当json⽂件中多个数据项时:
Skill[] skillArray = JsonMapper.ToObject<Skill[]>(File.ReadAllText("⽂件路径"));
List<Skill> skillList = JsonMapper.ToObject<List<Skill>>(File.ReadAllText("⽂件路径")); //3.从数据类转换到json格式
Skill s = new Skill(10001, 100, "飞龙在天");
string json = JsonMapper.ToJson(s);
File.WriteAllText(json)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论