⑴ c#.net 讀TXT文件
你首先確定你的文件"d:\tt.txt"中有內容嗎?
你的意思是說TextBox1中沒有內容顯示,對嗎回?
如果說你的"d:\tt.txt"中有內容,你看看這個循環答:
while((line = str.ReadLine()) != null)
{
Console.WriteLine(line);
}
這個循環是讀取文件中的內容,一直到讀取的內容為空;也就是說
str.ReadLine() = null;就會跳出循環,當然line的值也為null;
最後你將line的值賦給TextBox1.Text;當然就沒有任何顯示拉~~~
⑵ 用.Net打開一個txt文件,怎麼對文件里的內容進行查找,替換
簡單的辦法是
1、File.ReadAllText()用這個放大讀出來文件內容,到一個字元串變內量
2、用Replace()這個方法替換字元串
3、再用容File.WriteAllText這個方法寫回到文件
string text = File.ReadAllText("D:\\1.txt");
string result = text.Replace("oldStr", "NewStr");
File.WriteAllText("D:\\1.txt", result);
⑶ 在.NET中怎麼讀取.txt文件
class Program
{
static void Main(string[] args)
{
//使用StreamReader來讀取一個文本文件
//using (StreamReader sr = new StreamReader(@"C:\Users\SpringRain\Desktop\抽象類特點.txt",Encoding.Default))
//{
// while (!sr.EndOfStream)
// {
// Console.WriteLine(sr.ReadLine());
// }
//}
//使用StreamWriter來寫入一個文本文件
using (StreamWriter sw = new StreamWriter(@"C:\Users\SpringRain\Desktop\newnew.txt",true))
{
sw.Write("看我有木有把你覆蓋掉");
}
Console.WriteLine("OK");
Console.ReadKey();
}
}
⑷ C#.NET里怎麼讀寫流文件
FileStream常用的屬性和方法:
屬性:
CanRead
判斷當前流是否支持讀取,返回bool值,True表示可以讀取
CanWrite
判斷當前流是否支持寫入,返回bool值,True表示可以寫入
方法:
Read()
從流中讀取數據,返回位元組數組
Write()
將位元組塊(位元組數組)寫入該流
Seek()
設置文件讀取或寫入的起始位置
Flush()
清除該流緩沖區,使得所有緩沖的數據都被寫入到文件中
Close()
關閉當前流並釋放與之相關聯的所有系統資源
文件的訪問方式:(FileAccess)
包括三個枚舉:
FileAccess.Read(對文件讀訪問)
FileAccess.Write(對文件進行寫操作)
FileAccess.ReadWrite(對文件讀或寫操作)
文件打開模式:(FileMode)包括6個枚舉
FileMode.Append
打開現有文件准備向文件追加數據,只能同FileAccess.Write一起使用
FileMode.Create
指示操作系統應創建新文件,如果文件已經存在,它將被覆蓋
FileMode.CreateNew
指示操作系統應創建新文件,如果文件已經存在,將引發異常
FileMode.Open
指示操作系統應打開現有文件,打開的能力取決於FileAccess所指定的值
FileMode.OpenOrCreate
指示操作系統應打開文件,如果文件不存在則創建新文件
FileMode.Truncate
指示操作系統應打開現有文件,並且清空文件內容
文件共享方式:(FileShare)
FileShare方式是為了避免幾個程序同時訪問同一個文件會造成異常的情況。
文件共享方式包括四個:
FileShare.None
謝絕共享當前文件
FileShare.Read
充許別的程序讀取當前文件
FileShare.Write
充許別的程序寫當前文件
FileShare.ReadWrite
充許別的程序讀寫當前文件
使用FileStream類創建文件流對象:
FileStream(String
文件路徑,FileMode
文件打開模式)
FileStream(String
文件路徑,FileMode
文件打開模式,FileAccess
文件訪問方式)
FileStream(String
文件路徑,FileMode
文件打開模式,FileAccess
文件訪問方式,FileShare
文件共享方式)
例:
//在C盤創建a.txt文件,使用fs流對象對文件進行操作,fs的工作模式是新建(FileMode.Create)
FileStream
fs=new
FileStream(@"c:a.txt",FileMode.Create);
//在C盤創建a.txt文件,使用fs流對象對文件進行操作,fs工作模式是新建(FileMode.Create)文件的訪問模式是寫入(Fileaccess.Write)
FileStream
fs=new
FileStream(@"c:a.txt",FileMode.Create,FileAccess.Write);
//在C盤創建a.txt文件,使用fs流對象對文件進行操作,fs工作模式是新建(FileMode.Create)文件的訪問模式是寫入(FileAccess.Write)文件的共享模式是謝絕共享(FileShare.None)
FileStream
fs=new
FileStream(@"c:a.txt",FileMode.Create,FileAccess.Write,FileShare.None);
使用File類來創建對象:(常用)
自定義打開文件的方式:File.Open(String,FileMode);
打開文件進行讀取:
File.OpenRead(String);
打開文件進行寫入:
File.OpenWrite(String);
示例如下:
//在C盤新建123.txt文件,使用流對象fs對文件進行操作,fs可以行文件內容追加操作FileMode.Append
FileStream
fs=File.Open(@"c:123.txt",FileMode.Append);
//在C盤新建123.txt文件,使用流對象fs對文件進行操作,fs可以進行讀文件File.OpenRead()
FileStream
fs=File.OpenRead(@"c:123.txt");
//在C盤新建123.txt文件,使用流對象fs對文件進行操作,fs可以進行寫操作File.OpenWrite()
FileStream
fs=File.OpenWrite(@"c:123.txt");
使用File例:
對文件進行讀操作:
//新建fs流對象對象產生的路徑是textbox1.text的值,文件的模式是FileMode.OpenOrCreate(可讀可寫)
using
(FileStream
fs
=
File.Open(textBox1.Text,
FileMode.OpenOrCreate))
{
//新建位元組型數組,數組的長度是fs文件對象的長度(後面用於存放文件)
byte[]
bt=new
byte[fs.Length];
//通過fs對象的Read方法bt得到了fs對象流中的內容
fs.Read(bt,0,bt.Length);
//關閉fs流對象
fs.Close();
//將bt位元組型數組中的數據由Encoding.Default.GetString(bt)方法取出,交給textbox2.text
textBox2.Text
=
System.Text.Encoding.Default.GetString(bt);
}
對文件進行寫入操作:
//新建fs流對象,對象操作的文件路徑在textbox1.text中,fs的操作模式是FileMode.Create
using
(FileStream
fs
=
File.Open(textBox1.Text,
FileMode.Create))
{
//新建位元組型數組bt對象,bt對象得到了textbox2.text的Encoding的值
byte[]
bt
=
System.Text.Encoding.Default.GetBytes(textBox2.Text);
//將bt位元組型數組對象的值寫入到fs流對象中(文件)
fs.Write(bt,0,bt.Length);
//關閉流對象
fs.Close();
}
註:
對文件的讀寫操多不管代碼有多少,無非就是下面的三步:
1.創建文件讀寫流對象
2.對文件進行讀寫
3.關閉文件流
⑸ .net里文件讀寫問題
System.IO.StreamReader sr=new StreamReader("C:\\a.txt",System.Text.Encoding.GetEncoding("GB2312"));
string s=sr.ReadToEnd();
string [] ss=s.split(',');
int [] ii=new int[ss.length];
for(int i=0;i<ss.length;i++){
ii[i]=Convert.ToInt32(ss[i]);
}