菜单

Java进击C#——语法之IO操作

2019年5月3日 - 金沙编程资讯
DirectoryInfo dir =  Directory.CreateDirectory("./test");
if (dir.Exists)
{
    Console.WriteLine("创建成功");
}
else
{
    Console.WriteLine("创建失败");
}

Java进击C#——语法之IO操作,

本章简言

上1章大家对线程同步进行讲明。明白哪些去管理只怕产生的脏数据。而本章即将讲关于于C#在读取IO文件的时候,日常使用的操作类。那一章的内容会比较少。不过小编依然计算出来让读者们有三个就学的样子。不至于不明了学习些什么。

File类

那八个静态类。能够说是3个工具类吧。他里同包罗了多数关于管理文件的法力。笔者只是列出常用的一些功力。更加多的梦想读者们自行去打听。

1.张开多个文本流。展开药形式有很两种。如下代码

public static FileStream Open(string path, FileMode mode);
public static FileStream Open(string path, FileMode mode, FileAccess access);
public static FileStream Open(string path, FileMode mode, FileAccess access, FileShare share);

咱俩得以看出总共有八个参数。

path参数:表示文件的门径。

FileMode参数:展开文件的格局。如:新建
、开打或是新建等情势。请读者们自行查看。也足以按F1二翻看源码里面包车型大巴注释。

FileAccess参数:操作的形式。是只读照旧读写。仍旧只写。

FileShare参数:表示操作完以往是业务。请读者们自行查看。也得以按F1二查看源码里面包车型地铁注释。

看一下小编写的简练的列子吧。那规范方便学习。如下

 1 static void Main(string[] args)
 2         {
 3             using (FileStream fs = File.Open("TextFile1.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite))
 4             {
 5                 if (fs.CanRead)
 6                 {
 7                     List<byte> dataList = new List<byte>();
 8                     byte[] buffer = new byte[1024];
 9                     int len = 0;
10                   
11                     while ((len = fs.Read(buffer, 0, buffer.Length)) > 0)
12                     {
13                         byte[] tmpBuffer = new byte[len];
14                         Array.Copy(buffer, 0, tmpBuffer, 0, tmpBuffer.Length);
15                         dataList.AddRange(tmpBuffer);
16                     }
17 
18                     Console.WriteLine(Encoding.UTF7.GetString(dataList.ToArray(), 0, dataList.Count));
19                 }
20             }
21 
22             Console.ReadKey();
23 
24         }

 FileStream类正是一个文本流。有了这些类大家就可以对文件做读写操作。也就是JAVA的FileInputStream类。上边的代码中大家得以看到笔者使用了一个Array类。他个中包含了繁多对数组的操作。读者们得以看看。在输出的时候,作者使用了编码格式的始末。Encoding是收获编码格式的发端。所以明确要记得Encoding类。

2.直接记取文件内容。咱俩地方看到了要读取2个文书的始末。大家要做过多的作业。不过File类事实为大家做了五个简化的方法。

  Console.WriteLine(File.ReadAllText("TextFile1.txt", Encoding.UTF7));

好吧。大家地方做了那么多的作业还不及她一句话的事。跟她好像的措施都以以Read初步的。请读者们自行查看。同理大家就能够看来部分以Write起头的格局。没错。正是写入的情趣。相信不用作者多说了。

3.删减文件。那个效果很常用。也很简短 

File.Delete("TextFile1.txt");

四.论断是不是留存。归来ture表示存在。

File.Exists("TextFile1.txt");
Directory类

Directory类同File类同样子是三个静态类。只是File类是用来拍卖文件,而Directory类却是用于拍卖目录。聊到此处相信我们都知情。这里也是笔者为啥未有说上边的File类也正是JAVA的File类了。却确的说应该是俩者加在一齐相当于JAVA的File类。

一.获得目录下的文书。

 string[] fileNames = Directory.GetFiles(".");

二.创设对应的目录。

DirectoryInfo dir =  Directory.CreateDirectory("./test");
if (dir.Exists)
{
    Console.WriteLine("创建成功");
}
else
{
    Console.WriteLine("创建失败");
}

3.确定是不是留存。

 if (Directory.Exists("./test"))
                Console.WriteLine("test目录已经存在");
Path类

只得说作者在操作IO的时候,平日会用到Path类。他也是二个静态类。不要看不起她,他有1部分小功用确实很不利。下列正是我平时用的效益。

一.组装目录路线。

 string dir = Path.Combine(".", "test");

贰.获得未有扩张名的文书名。他会帮你去掉“.txt”.

 string name = Path.GetFileNameWithoutExtension("TextFile1.txt");

三.收获相对路线里面包车型客车目录路径。这一年就能回去“E:\\test\\”

string directoryNameg = Path.GetDirectoryName("E:\\test\\TextFile1.txt");

4.推断是还是不是为相对路径。

Path.IsPathRooted("E:\\test\\TextFile1.txt");
StreamReader类和StreamWriter类

小编读取文本流的公文平常会用StreamReader类。大家能够看看上面包车型大巴代码中有一叫@的符号。那几个用于表示那后的字符串是象征路线。这几个是您就足以绝不“\\”了。只要用”\”就能够了。

using (StreamReader sr = new StreamReader(@".\TextFile1.txt", Encoding.UTF8, true))
{
      while (!sr.EndOfStream)
      {
          Console.WriteLine(sr.ReadLine());
      }
}

而平常用StreamWriter类来写入。

using (FileStream fs = new FileStream(@".\TextFile1.txt", FileMode.OpenOrCreate))
{
       StreamWriter sw = new StreamWriter(fs);
       sw.WriteLine("i am aomi");
       sw.Flush();
}
XmlDocument类

笔者在支付使用的时候,日常会蒙受关于读取xml配置文件。在C#个中平时会用到XmlDocument类。他正是四个读取Xml文件的操作类。也正是JAVA的Dom四j里面包车型地铁SAXReader类。抢先5九%的操作都很像。读者们不用顾忌。

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("./XMLFile1.xml");
XmlElement xmlEle = xmlDoc.DocumentElement;

if (xmlEle.HasChildNodes)
{           
  Console.WriteLine(xmlEle.SelectSingleNode("Name").InnerText);
}
本章总结

本章的始末会相比较少。但小编认为也不可能忽略。到了这一章能够说关于C#基础知识便壹切终了了。而后的章节将进入C#使用开拓的尖端部分的牵线了。

本章简言
上一章大家对线程同步举办讲授。了然什么去管理可能暴发的脏数据。而本章将要讲关于于C#在读取…

Stream里德r         //火速读取文本文件

File.Delete("TextFile1.txt");

金沙国际 ,a)File.Copy(“source”, “targetFileName”,
true);//文件拷贝,true表示当文件存在时“覆盖”,如果不加true,则文件存在报那三个。

本章简言

d)File.WriteAllBytes(“path”,new byte[5]);//将byte[]整个写入到文件

二.赢得未有扩大名的文件名。他会帮你去掉“.txt”.

CreateDirectory()

FileMode参数:展开文件的情势。如:新建
、开打或是新建等格局。请读者们自行查看。也足以按F12查看源码里面包车型地铁注脚。

b)recursive代表是或不是递归删除,假使recursive为false则只可以删除空目录

string directoryNameg = Path.GetDirectoryName("E:\\test\\TextFile1.txt");

FileStream  //文件流,MemoryStream(内存流),NetworkStream(网络流)

  Console.WriteLine(File.ReadAllText("TextFile1.txt", Encoding.UTF7));

string
GetFullPath(string
path) 得到文件的全路线。可以凭仗相对路径获得相对路线。

Directory类同File类一样子是3个静态类。只是File类是用以拍卖公事,而Directory类却是用于拍卖目录。提起这里相信我们都通晓。这里也是小编为啥一贯不说地点的File类也正是JAVA的File类了。却确的说应该是俩者加在一同也正是JAVA的File类。

e)File.Create(“path”);//成立文件

大家能够看来总共有八个参数。

1、 文件操作常用相关类

using (FileStream fs = new FileStream(@".\TextFile1.txt", FileMode.OpenOrCreate))
{
       StreamWriter sw = new StreamWriter(fs);
       sw.WriteLine("i am aomi");
       sw.Flush();
}

操作文本文件

上壹章大家对线程同步实行解说。精通怎么去处理或然发生的脏数据。而本章就要讲关于于C#在读取IO文件的时候,日常使用的操作类。那1章的始末会比较少。可是小编依然总计出来让读者们有2个上学的来头。不至于不明了学习些什么。

string[]
GetFiles(string path, string searchPattern, SearchOption
searchOption)   通配符查找目录下的文书

FileAccess参数:操作的方式。是只读依旧读写。依旧只写。

 

看一下作者写的简易的列子吧。那标准方便学习。如下

c)File.Move(“source”,
“target”);//移动(剪切),考虑什么为文件重命名?

public static FileStream Open(string path, FileMode mode);
public static FileStream Open(string path, FileMode mode, FileAccess access);
public static FileStream Open(string path, FileMode mode, FileAccess access, FileShare share);

string[]
GetDirectories(string path, string searchPattern, SearchOption
searchOption)    通配符查找目录下的子目录,能够搜寻到隐蔽文件。

FileShare参数:表示操作完事后是事情。请读者们自行查看。也能够按F1二查看源码里面包车型大巴注脚。

  string s =
Path.ChangeExtension(@”C:\temp\F3.png”, “jpg”)

path参数:表示文件的路径。

  将多个门路合成3个路线,比用+好,可以便宜消除不加斜线的难点,自动管理路子分隔符的主题素材

 FileStream类正是3个文本流。有了那几个类大家就足以对文本做读写操作。也正是JAVA的FileInputStream类。上边包车型大巴代码中大家可以见见小编利用了一个Array类。他里面富含了成都百货上千对数组的操作。读者们可以看看。在出口的时候,小编利用了编码格式的始末。Encoding是得到编码格式的始发。所以毫无疑问要记得Encoding类。

d)FileInfo         //文件类,用来描述三个文本对象

而时常用StreamWriter类来写入。

static
string[] GetFiles(string path)  获得1个索引下的文书

using (StreamReader sr = new StreamReader(@".\TextFile1.txt", Encoding.UTF8, true))
{
      while (!sr.EndOfStream)
      {
          Console.WriteLine(sr.ReadLine());
      }
}

b) string
ChangeExtension(string path, string extension) (*)

三.删减文件。其壹效果很常用。也不会细小略 

a)void
Delete(string path, bool recursive)     删除目录

壹.建设构造目录路线。

string
GetTempPath() 获得一时半刻文件夹的门道(*)

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图