IO系列测试源码
//IO系列测试源码(需要自取)
using System;
using System.CodeDom;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace IO
{
class Program
{
static void Main(string[] args)
{
#region File // FileStream fs= File.Create("demo.txt");
// if(File.Exists("demo.txt"))
// Console.WriteLine("demo.txt文件已创建");
// fs.Close();
//// File.Move("demo1.txt","demo1.txt");
// File.Delete("demo.txt"); #endregion #region Directory //Directory.CreateDirectory("Test"); //var dirs = Directory.GetFileSystemEntries("Test");
//foreach (var dir in dirs)
//{
// Console.WriteLine(dir);
//} #endregion #region FileInfo //FileInfo fi = new FileInfo(@"./demo.txt"); //if (fi.Exists)
//{
// Console.WriteLine(fi.Name);
// Console.WriteLine(fi.Attributes);
// fi.Attributes = FileAttributes.Archive;
// Console.WriteLine(fi.CreationTime);
// Console.WriteLine(fi.CreationTimeUtc);
// Console.WriteLine(fi.Extension);
// Console.WriteLine(fi.FullName);
// Console.WriteLine(fi.LastAccessTime);
// Console.WriteLine(fi.LastAccessTimeUtc);
// Console.WriteLine(fi.LastWriteTime);
// Console.WriteLine(fi.LastWriteTimeUtc);
// DirectoryInfo directoryInfo = fi.Directory;
// Console.WriteLine(fi.DirectoryName);
// Console.WriteLine(fi.IsReadOnly);
// Console.WriteLine(fi.Length);
//} #endregion #region DirectryInfo //DirectoryInfo di=new DirectoryInfo("./");
//DirectoryInfo parent = di.Parent;
//DirectoryInfo root = di.Root; //Console.WriteLine(di.FullName);
//Console.WriteLine(parent.FullName);
//Console.WriteLine(root.FullName); #endregion #region Stream ////读取数据并展示
//FileStream fs = new FileStream("./demo.txt", FileMode.Open, FileAccess.Read); ////fs.Seek(5, SeekOrigin.Begin); //int len, i = 0;
////存放每次读取的数据
//byte[] buffer = new byte[5];
////存放所有读到的数据,最后将其转换为字符串
//byte[] data = new byte[fs.Length];
////循环读取文件
//while ((len = fs.Read(buffer, 0, buffer.Length)) != 0)
//{
// for (int j = 0; j < len; j++)
// {
// data[i++] = buffer[j];
// }
//} //Console.WriteLine(Encoding.UTF8.GetChars(data)); ////数据写入
//FileStream write = new FileStream("./demo_copy.txt", FileMode.Create, FileAccess.Write); ////重置指针
//fs.Seek(0, SeekOrigin.Begin);
//while ((len = fs.Read(buffer, 0, buffer.Length)) != 0)
//{
// write.Write(buffer, 0, len);
//} //fs.Dispose();
//write.Dispose(); ////读取数据并展示
//FileStream fs = new FileStream("./demo.txt", FileMode.Open, FileAccess.Read); ////fs.Seek(5, SeekOrigin.Begin); //int len, i = 0;
////存放每次读取的数据
//byte[] buffer = new byte[5];
////存放所有读到的数据,最后将其转换为字符串
//byte[] data = new byte[fs.Length];
////循环读取文件
//while ((len = fs.Read(buffer, 0, buffer.Length)) != 0)
//{
// for (int j = 0; j < len; j++)
// {
// data[i++] = buffer[j];
// }
//} //Console.WriteLine(Encoding.UTF8.GetChars(data)); ////数据写入
//FileStream write = new FileStream("./demo_copy.txt", FileMode.Create, FileAccess.Write); ////重置指针
//fs.Seek(0, SeekOrigin.Begin);
//while ((len = fs.Read(buffer, 0, buffer.Length)) != 0)
//{
// write.Write(buffer, 0, len);
//} //fs.Dispose();
//write.Dispose(); #endregion #region StreamReader & StreamWriter //FileStream fs = new FileStream("./demo.txt", FileMode.Open, FileAccess.ReadWrite);
//StreamReader sr=new StreamReader(fs,true); //StreamWriter sw=new StreamWriter("./demo_copy.txt"); //string data=String.Empty;
//while ((data=sr.ReadLine())!=null)
//{
// Console.WriteLine(data);
// sw.WriteLine(data);
//} //fs.Dispose();
//sw.Dispose();
//sr.Dispose(); #endregion #region 异步操作 //FileStream fs = new FileStream("./demo.txt", FileMode.Open, FileAccess.Read);
//Task<string> file = ReadFile(fs);
//file.ContinueWith(t =>
//{
// Console.WriteLine(t.Result);
//}); #endregion #region 压缩文件 //目标文件
StreamReader sr=new StreamReader("./demo.txt");
//压缩后文件
FileStream fw=new FileStream("./demo_zip.txt.zip",FileMode.OpenOrCreate,FileAccess.Write); //基于FileStream创建压缩对象
GZipStream gs=new GZipStream(fw,CompressionMode.Compress); //写入压缩后的数据
StreamWriter sw=new StreamWriter(gs);
string data=string.Empty;
while ((data=sr.ReadLine())!=null)
{
sw.Write(data);
}
//必须关闭写入对象,否则会导致压缩文件失败
sw.Close(); #endregion Console.ReadKey();
} private async static Task<string> ReadFile(FileStream fs)
{
int len, i = 0;
byte[] buffer = new byte[5];
byte[] data = new byte[fs.Length];
while ((len =await fs.ReadAsync(buffer, 0, buffer.Length)) != 0)
{
for (int j = 0; j < len; j++)
{
data[i++] = buffer[j];
}
} return Encoding.UTF8.GetString(data);
} }
}
IO系列测试源码的更多相关文章
- MVC系列——MVC源码学习:打造自己的MVC框架(四:了解神奇的视图引擎)
前言:通过之前的三篇介绍,我们基本上完成了从请求发出到路由匹配.再到控制器的激活,再到Action的执行这些个过程.今天还是趁热打铁,将我们的View也来完善下,也让整个系列相对完整,博主不希望烂尾. ...
- MVC系列——MVC源码学习:打造自己的MVC框架(三:自定义路由规则)
前言:上篇介绍了下自己的MVC框架前两个版本,经过两天的整理,版本三基本已经完成,今天还是发出来供大家参考和学习.虽然微软的Routing功能已经非常强大,完全没有必要再“重复造轮子”了,但博主还是觉 ...
- MVC系列——MVC源码学习:打造自己的MVC框架(二:附源码)
前言:上篇介绍了下 MVC5 的核心原理,整篇文章比较偏理论,所以相对比较枯燥.今天就来根据上篇的理论一步一步进行实践,通过自己写的一个简易MVC框架逐步理解,相信通过这一篇的实践,你会对MVC有一个 ...
- MVC系列——MVC源码学习:打造自己的MVC框架(一:核心原理)
前言:最近一段时间在学习MVC源码,说实话,研读源码真是一个痛苦的过程,好多晦涩的语法搞得人晕晕乎乎.这两天算是理解了一小部分,这里先记录下来,也给需要的园友一个参考,奈何博主技术有限,如有理解不妥之 ...
- [转]MVC系列——MVC源码学习:打造自己的MVC框架(一:核心原理)
本文转自:http://www.cnblogs.com/landeanfen/p/5989092.html 阅读目录 一.MVC原理解析 1.MVC原理 二.HttpHandler 1.HttpHan ...
- Spring Ioc源码分析系列--Ioc源码入口分析
Spring Ioc源码分析系列--Ioc源码入口分析 本系列文章代码基于Spring Framework 5.2.x 前言 上一篇文章Spring Ioc源码分析系列--Ioc的基础知识准备介绍了I ...
- Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码)
Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码) http://blog.csdn.net/helonsy/article/details/7207497 ...
- Java IO 之 OutputStream源码
Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter ...
- Slurm任务调度系统部署和测试(源码)(1)
1. 概述1.1 节点信息2. 节点准备3. 部署NTP服务器4. 部署LDAP服务器5. 部署Munge认证服务6. 部署Mysql数据库服务7. 部署slurm7.1 创建slurm用户7.2 挂 ...
随机推荐
- HDU_3949 XOR 【线性基】
一.题目 XOR 二.分析 给定$N$个数,问它的任意子集异或产生的数进行排列,求第K小的数. 构造出线性基$B$后,如果$|B| < N$,那么代表N个数中有一个数是可以由线性基中的其他数异或 ...
- 图像匹配 | NCC 归一化互相关损失 | 代码 + 讲解
文章转载自:微信公众号「机器学习炼丹术」 作者:炼丹兄(已授权) 作者联系方式:微信cyx645016617(欢迎交流共同进步) 本次的内容主要讲解NCCNormalized cross-correl ...
- 【Azure 云服务】在Cloud Service的代码中如何修改IIS Application Pool的配置呢? 比如IdleTimeout, startMode, Recycling.PeriodicRestart.Time等
什么是 PaaS?Platform as a Service 平台即服务 (PaaS) 是云中的完整开发和部署环境,你可以使用其中资源交付内容,从基于云的简单应用到启用云的复杂企业应用程序皆可.你以即 ...
- Scrum完整项目实例
一.背景 在谈 JIRA 之前,就不得不说说敏捷开发了.正式由于项目是基于敏捷开发进行的,因此才引入了 JIRA 这款适合于敏捷开发的项目管理工具.当然,这里不会大篇章的介绍敏捷开发,之前的文章有详细 ...
- 学习笔记-cordova 限制app横屏
禁止手机app横竖屏幕转换,只需在根目录下的 config.xml 中添加如下内容 <preference name="orientation" value="po ...
- oo第四单元总结及总课程回顾
一.第四单元架构设计 1.第一次作业 第一次作业要求实现的只有对类图的分析.为了直观地搭建出一个类图,我新建了Manager类来处理UmlElement以及搭建树.但由于未能做好时间管理,因此第一次作 ...
- c++ 数组定义及初始化
C ++提供了一种数据结构,即数组,该数组存储一个固定大小的由相同类型元素构成的顺序集合. 数组中的元素存储在一个连续内存位置中,元素可通过数组索引访问, 最低地址对应于第一个元素,最高地址对应于最后 ...
- Java面向对象OOP思想概述
目录 OOP思想(Object Oriented Programming) 类和对象 接口 抽象类 OOP三大特性 封装 继承 多态 OOP复用的形式 OOP思想(Object Oriented Pr ...
- 多图详解 TCP 连接管理,太全了!!!
TCP 是一种面向连接的单播协议,在 TCP 中,并不存在多播.广播的这种行为,因为 TCP 报文段中能明确发送方和接受方的 IP 地址. 在发送数据前,相互通信的双方(即发送方和接受方)需要建立一条 ...
- Mybatis3源码笔记(一)环境搭建
1. 源码下载 地址:https://github.com/mybatis/mybatis-3.git. 国内访问有时确实有点慢,像我就直接先fork.然后从git上同步到国内的gitte上,然后在i ...