C#文件操作
2016-07-27 17:30
330 查看
class MainClass
{
//字符流:File,streamWriter,StreamRead
//子节流:FileStream
public static void WriterFile(){
FileStream fs=null;
StreamWriter writer = null;
string path = "/Users/students/Desktop/text.txt";
if (!File.Exists(path)) {
fs = File.Create (path);
} else {
fs = File.Open (path,FileMode.Open);
}
writer = new StreamWriter (fs);
writer.WriteLine ("nihao");
writer.Flush();
writer.Close ();
fs.Close ();
}
//创建目录写入文件
public static void directoryOpen(){
string dirPath = Directory.GetCurrentDirectory ()+"/MyDir";
Console.WriteLine (dirPath);
string filePath = string.Format ("{0}/{1}",dirPath,"dir.txt");
if (!Directory.Exists (dirPath)) {
Directory.CreateDirectory (dirPath);
Console.WriteLine ("Create dirPath");
} else {
Console.WriteLine ("Exit");
}
FileInfo file = new FileInfo (filePath);
if (!file.Exists) {
file.Create ();
Console.WriteLine ("Create file");
} else {
Console.WriteLine ("filr Exist");
}
}
public static void FindAllText(){
//获取路径下的所有文件路径,包括隐藏文件
string[] files = Directory.GetFiles ("/Users/students/projects/FileOperation","*",SearchOption.AllDirectories);
StringBuilder sb = new StringBuilder ();
Console.WriteLine (files.Length);
for (int i = 0, len= files.Length;i<len; i++) {
string filePath = files [i];
sb.Append (filePath).Append(",").Append("123").Append("\n");
Console.WriteLine (filePath);
}
FileStream stream = new FileStream ("version1.txt",FileMode.Create);
byte[] data = Encoding.UTF8.GetBytes (sb.ToString());
stream.Write (data,0,data.Length);
stream.Flush();
stream.Close ();
}
//字节流之FileStream读写
public static void TestStream(){
string fileParh="readwrite.txt";
using(FileStream fileSteam=File.Open(fileParh,FileMode.OpenOrCreate)){
string msg = "Nihao xiaoli";
byte[] msgByteArray = Encoding.Default.GetBytes (msg);
Console.WriteLine ("开始写文件");
fileSteam.Write (msgByteArray,0,msgByteArray.Length);
fileSteam.Seek (0,SeekOrigin.Begin);
Console.WriteLine ("读文件");
byte[] readMsg=new byte[msgByteArray.Length];
fileSteam.Read (readMsg,0,readMsg.Length);
Console.WriteLine (Encoding.Default.GetString(readMsg));
}
}
//字符流写入
public static void TestWriter(){
string filePath = "TestWriter.txt";
using(FileStream fs=File.Open(filePath,FileMode.OpenOrCreate)){
string msg = "Nihao TestWriter";
StreamWriter sw = new StreamWriter (fs);
sw.Write (msg);
StreamReader sr = new StreamReader (fs);
string _msg = sr.ReadToEnd ();
sw.Close ();
sr.Close ();
Console.WriteLine (_msg);
}
}
//对文件内容处理成字典
public static void TestDic(){
Dictionary<string,string> dic = new Dictionary<string,string>();
string filePath = "version1.txt";
string content = File.ReadAllText (filePath);
Unitls.StringSplit (content,dic);
foreach(var e in dic){
Console.WriteLine ("{0}:{1}",e.Key,e.Value);
}
}
//异步
public static void TestAsync(){
FileStream fs = null;
string filePath="TestAsync.txt";
FileInfo fileInfo = new FileInfo (filePath);
if(!fileInfo.Exists){
fs = File.Create (filePath);
fs.Close ();
}
fs = new FileStream (filePath,FileMode.Open,FileAccess.Write,FileShare.None,4096,true);
Console.WriteLine ("开启异步操作{0}",fs.IsAsync);
string msg = "Nihao Async";
byte[] buffer = Encoding.Default.GetBytes (msg);
//开始异步操作
IAsyncResult sr = fs.BeginWrite (buffer,0,buffer.Length,new AsyncCallback(EndWriteCallBack),fs);
}
public static void EndWriteCallBack(IAsyncResult ar){
Console.WriteLine ("aaaaa");
FileStream stream = ar.AsyncState as FileStream;
if(stream!=null){
stream.EndWrite (ar);
stream.Close ();
}
Console.WriteLine ("异步完毕");
}
public static void Main (string[] args)
{
//WriterFile ();
//directoryOpen ();
//TestStream ();
//TestWriter ();
//FindAllText ();
//TestDic ();
TestAsync ();
for (int i = 0; i < 1000; i++) {
Console.WriteLine ("count:{0}",i);
}
}
}
public class Unitls{
public static void StringSplit(string content,Dictionary<string,string> dic){
if(content==null || content.Length==0){
return;
}
string[] strs = content.Split (new char[]{'\n'});
foreach(string s in strs){
string[] ss = s.Split (new char []{','});
if(ss!=null && ss.Length==2){
dic.Add (ss[0],ss[1]);
}
}
}
}
* 字节流(Stream)
* 字符流(TextReader、TextWriter)
{
//字符流:File,streamWriter,StreamRead
//子节流:FileStream
public static void WriterFile(){
FileStream fs=null;
StreamWriter writer = null;
string path = "/Users/students/Desktop/text.txt";
if (!File.Exists(path)) {
fs = File.Create (path);
} else {
fs = File.Open (path,FileMode.Open);
}
writer = new StreamWriter (fs);
writer.WriteLine ("nihao");
writer.Flush();
writer.Close ();
fs.Close ();
}
//创建目录写入文件
public static void directoryOpen(){
string dirPath = Directory.GetCurrentDirectory ()+"/MyDir";
Console.WriteLine (dirPath);
string filePath = string.Format ("{0}/{1}",dirPath,"dir.txt");
if (!Directory.Exists (dirPath)) {
Directory.CreateDirectory (dirPath);
Console.WriteLine ("Create dirPath");
} else {
Console.WriteLine ("Exit");
}
FileInfo file = new FileInfo (filePath);
if (!file.Exists) {
file.Create ();
Console.WriteLine ("Create file");
} else {
Console.WriteLine ("filr Exist");
}
}
public static void FindAllText(){
//获取路径下的所有文件路径,包括隐藏文件
string[] files = Directory.GetFiles ("/Users/students/projects/FileOperation","*",SearchOption.AllDirectories);
StringBuilder sb = new StringBuilder ();
Console.WriteLine (files.Length);
for (int i = 0, len= files.Length;i<len; i++) {
string filePath = files [i];
sb.Append (filePath).Append(",").Append("123").Append("\n");
Console.WriteLine (filePath);
}
FileStream stream = new FileStream ("version1.txt",FileMode.Create);
byte[] data = Encoding.UTF8.GetBytes (sb.ToString());
stream.Write (data,0,data.Length);
stream.Flush();
stream.Close ();
}
//字节流之FileStream读写
public static void TestStream(){
string fileParh="readwrite.txt";
using(FileStream fileSteam=File.Open(fileParh,FileMode.OpenOrCreate)){
string msg = "Nihao xiaoli";
byte[] msgByteArray = Encoding.Default.GetBytes (msg);
Console.WriteLine ("开始写文件");
fileSteam.Write (msgByteArray,0,msgByteArray.Length);
fileSteam.Seek (0,SeekOrigin.Begin);
Console.WriteLine ("读文件");
byte[] readMsg=new byte[msgByteArray.Length];
fileSteam.Read (readMsg,0,readMsg.Length);
Console.WriteLine (Encoding.Default.GetString(readMsg));
}
}
//字符流写入
public static void TestWriter(){
string filePath = "TestWriter.txt";
using(FileStream fs=File.Open(filePath,FileMode.OpenOrCreate)){
string msg = "Nihao TestWriter";
StreamWriter sw = new StreamWriter (fs);
sw.Write (msg);
StreamReader sr = new StreamReader (fs);
string _msg = sr.ReadToEnd ();
sw.Close ();
sr.Close ();
Console.WriteLine (_msg);
}
}
//对文件内容处理成字典
public static void TestDic(){
Dictionary<string,string> dic = new Dictionary<string,string>();
string filePath = "version1.txt";
string content = File.ReadAllText (filePath);
Unitls.StringSplit (content,dic);
foreach(var e in dic){
Console.WriteLine ("{0}:{1}",e.Key,e.Value);
}
}
//异步
public static void TestAsync(){
FileStream fs = null;
string filePath="TestAsync.txt";
FileInfo fileInfo = new FileInfo (filePath);
if(!fileInfo.Exists){
fs = File.Create (filePath);
fs.Close ();
}
fs = new FileStream (filePath,FileMode.Open,FileAccess.Write,FileShare.None,4096,true);
Console.WriteLine ("开启异步操作{0}",fs.IsAsync);
string msg = "Nihao Async";
byte[] buffer = Encoding.Default.GetBytes (msg);
//开始异步操作
IAsyncResult sr = fs.BeginWrite (buffer,0,buffer.Length,new AsyncCallback(EndWriteCallBack),fs);
}
public static void EndWriteCallBack(IAsyncResult ar){
Console.WriteLine ("aaaaa");
FileStream stream = ar.AsyncState as FileStream;
if(stream!=null){
stream.EndWrite (ar);
stream.Close ();
}
Console.WriteLine ("异步完毕");
}
public static void Main (string[] args)
{
//WriterFile ();
//directoryOpen ();
//TestStream ();
//TestWriter ();
//FindAllText ();
//TestDic ();
TestAsync ();
for (int i = 0; i < 1000; i++) {
Console.WriteLine ("count:{0}",i);
}
}
}
public class Unitls{
public static void StringSplit(string content,Dictionary<string,string> dic){
if(content==null || content.Length==0){
return;
}
string[] strs = content.Split (new char[]{'\n'});
foreach(string s in strs){
string[] ss = s.Split (new char []{','});
if(ss!=null && ss.Length==2){
dic.Add (ss[0],ss[1]);
}
}
}
}
* 字节流(Stream)
* 字符流(TextReader、TextWriter)
相关文章推荐
- c#调用COM组件
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现给图片加水印的方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#中的delegate委托类型基本学习教程
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- 举例讲解C#中自动实现的属性
- C#中this的用法集锦
- C#数据结构之顺序表(SeqList)实例详解
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#比较二个数组并找出相同或不同元素的方法