C#:IO
1. File和Directory类
这两个类属于静态类,经常用到的比如File.Exists(string path), Directory.Exists(string path), Directory.GetCurrentDirectory(), Directory.SetCurrentDirectory(string path);
另外还有FileInfo和DirectoryInfo类,属于实例类,用法跟File和Directory差不多,就是要先实例化出来
当单一调用的时候优先用File和Directory类,如果操作很多,则用FileInfo和DirectoryInfo类会更好
2. FileStream类
用于指向文件的流操作,读写文档没StreamReader和StreamWriter方便
当然FileStream类最牛逼的地方在于Seek(long offset, SeekOrigin)这个方法
FileStream(string fileName, FileMode);
FileStream(string fileName, FileMode, FileAccess);
public enum FileMode
{
Append,
Create,
CreateNew,
Open,
OpenOrCreate,
Truncate
}
public enum FileMode
public enum FileAccess
{
Read,
ReadWrite,
Write
}
public enum FileAccess
3. FileWriter
虽然FileWriter能够直接对文件写入,但是没有更多选项,所以一般要先创建一个FileStream,再创建FileWriter
4.FileReader
与FileWriter一样,但是FileStream的FileMode要改改
Read的时候可能会有文件不存在的BUG,所以要么加上try..catch,要么先判断exists
5. Path类
静态类,主要有GetDirectoryName和GetFileName两个方法
下面这段代码集成了上面的内容
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data;
using MySql.Data.Entity;
using MySql.Data.MySqlClient;
using System.IO;
namespace test4
{
class Program
{
const string FILE = @"C:\Users\Administrator\Desktop\test.txt";
const string DIRECTORY = @"C:\Users\Administrator\Desktop\";
static void Main(string[] args)
{
if (File.Exists(FILE))
{
Console.WriteLine("test.txt exist on desktop");
}
if (Directory.Exists(DIRECTORY))
{
Console.WriteLine("Desktop directory exists");
}
Console.WriteLine(Directory.GetCurrentDirectory());
Console.WriteLine(Path.GetDirectoryName(FILE));
Console.WriteLine(Path.GetFileName(FILE));
//FileStream fst = File.OpenRead(FILE);
//StreamWriter sw = new StreamWriter(FILE, true);
FileStream fst = new FileStream(FILE, FileMode.Append | FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(fst);
sw.WriteLine("xueyiyi");
sw.Close();
fst.Close();
//try
//{
// fst = new FileStream(FILE, FileMode.Open);
// StreamReader sr = new StreamReader(fst);
// string str;
// while ((str = sr.ReadLine()) != null)
// {
// Console.WriteLine(str);
// }
// sr.Close();
// fst.Close();
//}
//catch (IOException e)
//{
// Console.WriteLine("An IO exception has been thrown!");
// Console.WriteLine(e.ToString());
// return;
//}
if (File.Exists(FILE))
{
fst = new FileStream(FILE, FileMode.Open);
StreamReader sr = new StreamReader(fst);
string str;
while ((str = sr.ReadLine()) != null)
{
Console.WriteLine(str);
}
sr.Close();
fst.Close();
}
else
{
Console.WriteLine(FILE + " does not exist");
}
}
}
}
用StreamWriter类可以简单实现文件写入
StreamWriter s = new StreamWriter(address + "/Menu.ini", true);s.WriteLine(openFileDialog1.FileName);s.Flush();s.Close();StreamReader sr = new StreamReader(address + "/Menu.ini");while (sr.Peek()>=0){ string str = sr.ReadLine();}sr.Close();C#:IO的更多相关文章
- 谈谈我的微软特约稿:《SQL Server 2014 新特性:IO资源调控》
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 撰写经历(Experience) 特约稿正文(Content-body) 第一部分:生活中资源 ...
- 泛函编程(38)-泛函Stream IO:IO Process in action
在前面的几节讨论里我们终于得出了一个概括又通用的IO Process类型Process[F[_],O].这个类型同时可以代表数据源(Source)和数据终端(Sink).在这节讨论里我们将针对Proc ...
- 泛函编程(32)-泛函IO:IO Monad
由于泛函编程非常重视函数组合(function composition),任何带有副作用(side effect)的函数都无法实现函数组合,所以必须把包含外界影响(effectful)副作用不纯代码( ...
- SQL Server 2014 新特性:IO资源调控
谈谈我的微软特约稿:<SQL Server 2014 新特性:IO资源调控> 2014-07-01 10:19 by 听风吹雨, 570 阅读, 16 评论, 收藏, 收藏 一.本文所涉及 ...
- Java NIO:IO与NIO的区别
一.概念 NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多.在Java API中提供了两套N ...
- 字节输入流:io包中的InputStream为所有字节输入流的父类。
字节输入流:io包中的InputStream为所有字节输入流的父类. Int read();读入一个字节(每次一个): 可先使用new byte[]=数组,调用read(byte[] b) read ...
- 14:IO之字符字节流
字节流: InputStream OutputStream 字节流: FileInputStream FileOutputStream BufferedInputStream Buffer ...
- Java基础:IO流之字节流和字符流
1. 流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部文件等. 一个流,必有源端和目的端 ...
- Java网络编程和NIO详解3:IO模型与Java网络编程模型
Java网络编程和NIO详解3:IO模型与Java网络编程模型 基本概念说明 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32 ...
- Java NIO:IO与NIO的区别 -阿里面试题
一.概念 NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多.在Java API中提供了两套N ...
随机推荐
- Bootstrap 辅组类和响应式工具
1.情景文本颜色 //各种色调的字体 <p class="text-muted">Bootstrap 视频教程</p> <p class=" ...
- nrf51822裸机教程-GPIOTE
GPIO通常都会具有中断功能,上一讲的GPIO中并没有涉及到中断的相关寄存器. 51822将GPIO的中断相关做成了一个单独的模块GPIOTE,这个模块不仅提供了GPIO的中断功能,同时提供了 通过t ...
- OC文件大小的计算方法,多用于清理缓存
OC文件大小的计算方法,一般多用于清理缓存.下载.统计 可以使用以下方法: #pragma mark Bt转换 + (NSString *)axcFileSizeWithToString:(unsig ...
- Sandbox 文件存放规则
文档1, document2, document3 一.文件路径介绍 <Application_Home>/AppName.app : 1) This is the bundle dir ...
- TOMCAT源码分析(启动框架)
建议: 毕竟TOMCAT的框架还是比较复杂的, 单是从文字上理解, 是不那么容易掌握TOMCAT的框架的. 所以得实践.实践.再实践. 建议下载一份TOMCAT的源码, 调试通过, 然后单步跟踪其启动 ...
- 【C51】单片机中断
引言 其实人的一生和单片机的运行很类似.就拿人的一生来说:有些事只需要做一次,比如得了水痘以后,体内产生免疫,以后就不会再生这个病了.有些事需要反复做,比如反复读书,反复工作,反复与困苦打交道,反复地 ...
- CodeForce727C. Guess the Array---交互题
题目链接:http://codeforces.com/contest/727/problem/C 题意:交互题: printf(“? i j\n”); fflush(stdout); 然后scanf( ...
- Java学习-007-Log4J 日志记录配置文件详解及实例源代码
此文主要讲述在初学 Java 时,常用的 Log4J 日志记录配置文件详解及实例源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:20 ...
- Flash Socket简单调试工具
写了一个简单的Flash Socket调试工具,可用来简单调试本地或者外部socket服务器,使用的时候注意Flash socket的安全策略问题,有问题请联系sky-wang@qq.com.
- Android TimePickerDialog样式配置与TimePicker模式选择
习惯性的,把要说的内容先总结一下: TimePicker有两种模式:spinner 和clock,可通过如下方式配置: <TimePicker android:timePickerMode = ...