C#文件操作
来源:互联网 发布:ios编写软件 编辑:程序博客网 时间:2024/06/16 14:45
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);
}
}
{
//字符流: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)
0 0
- C#中的文件操作
- C# 文件操作
- C# 文件操作
- c#文件操作
- C#中的文件操作
- C#文件操作
- c#文件操作
- C# 文件操作相关
- c# 常用文件操作
- c# 常用文件操作
- C#操作文件
- C# 文件操作
- c#文件操作
- C# 文件操作
- c#文件操作
- C# 文件操作
- (转)c#文件操作
- C# 基本文件操作
- UVA 1386 Cellular Automaton
- HTTP
- 大数据量查询优化
- sap abap 性能优化(二)
- 如何用HttpWebRequest通过代理IP post 到https的网站?
- C#文件操作
- Android Device Monitor查找手机内存存储的文件夹位置
- Sqlite的通配符
- Data Binding Component详解 - 换肤什么的只是它的一个小应用!
- java开发必备的linux命令
- ssh,公钥和私钥,远程复制
- android init.rc 语法分析
- Xcode7中创建静态库
- 获取手机屏幕DisplayMetrics属性方法