比較簡單,適合初學者的。
題目:
首先創建一個文件,並將鍵盤輸入的內容寫入到文件中;然後以文本方式和二進制方式讀寫文件,獲取文件屬性
步驟
1.創建一個控制台程序:打開vs2010,File->new->project,選擇console application,名稱中寫入自己想要的名字即可;我的名稱是:File
2.代碼編寫步驟:
1).創建一個FileStream的對象,定義指向文件的流;
2).創建一個streamwriter對象,向創建的文件中寫入從控制台輸入的內容;當輸入0時輸入結束;
3).創建一個streamreader對象,以文本方式讀取剛創建的文件中的內容,輸出到控制台中;
4).創建一個binaryreader對象,一個個讀取其中的字符,並轉換成ascii碼;
5).創建一個fileInfo對象,獲取文件的名稱,長度等屬性;
3.具體的代碼如下:(代碼中有講解)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace File
{
class Program
{
static void Main(string[] args)
{ www.2cto.com
//與創建FileStream對象不同,創建StreamWriter對象不會提供一組類似的選項:
//除了使用Boolean值添加到文件的末尾或創建新文件之外,根本沒有像FileStream類那樣
//指定FileMode屬性的選項。而且,沒有設置FileAccess屬性的選項,因此總是有對文件的讀/寫權限。
//為了使用高級參數,必須先在FileStream構造函數中指定這些參數,然後在FileStream對象中創建StreamWriter。
//StreamWriter sw = new StreamWriter(@"C:\\文件.txt", true);
//此構造函數中有兩個參數,一個是文件名,另一個是布爾值,這個布爾值規定創建對象的方式如下:
//如果此值為false,則創建一個新文件,如果存在原文件,則覆蓋。
//如果此值為true,則打開文件保留原來數據,如果找不到文件,則創建新文件。
try
{
FileStream fs = new FileStream(@"C:\\文件.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
StreamWriter sw = new StreamWriter(fs);
string str = Console.ReadLine();//獲取鍵盤上輸入的內容,最終寫到文件中
while (str != "0")//當輸入0時,輸入結束
{
sw.WriteLine(str);
str = Console.ReadLine();
}
sw.Close();
}
catch (IOException ex)
{
Console.WriteLine(ex.Message);
Console.ReadLine();
return;
}
try
{
FileStream fs = new FileStream(@"C:\\文件.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
StreamReader sr = new StreamReader(fs);
Console.WriteLine("***************以文本方式讀文件********************************");
string strs = sr.ReadLine();
while (strs != null)
{
Console.WriteLine(strs);
strs = sr.ReadLine();
}
sr.Close();
}
catch (IOException ex)
{
Console.WriteLine(ex.Message);
return;
}
Console.WriteLine();
try
{
Console.WriteLine("***************以二進制方式讀文件********************************");
FileStream fs = new FileStream(@"C:\\文件.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
BinaryReader br = new BinaryReader(fs);
while (br.BaseStream.Position < br.BaseStream.Length)
{
char ch = br.ReadChar();//獲取字符中的每個字符
int i=Convert.ToInt32(ch);//獲得字符的ASCII碼
if (i == 10)//ASCII碼是10是換行鍵
{
continue;
}
if(i==13)//ASCII碼是13是回車鍵
{
Console.WriteLine();
continue;
}
Console.Write(Convert.ToInt32(ch));
if (i != 13&&i!=10)
Console.Write(".");
}
br.Close();
fs.Close();
}
catch (IOException ex)
{
Console.WriteLine(ex.Message);
return;
}
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("***************讀取文件屬性********************************");
FileInfo fileInfo = new FileInfo(@"C:\\文件.txt");
Console.WriteLine("文件名 :"+fileInfo.Name);
Console.WriteLine("文件名<含路徑> :"+fileInfo.FullName);
Console.WriteLine("文件大小<byte> :" + fileInfo.Length);
Console.WriteLine("文件創建時間 :" + fileInfo.CreationTime);
}
}
}
程序運行的效果如下: