免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
C# byte及char FileStream 與StreamReader的區(qū)別
FileStream對(duì)象表示在磁盤(pán)或網(wǎng)絡(luò)路徑上指向文件的流。這個(gè)類提供了在文件中讀寫(xiě)字節(jié)的方法,但經(jīng)常使用StreamReader或 StreamWriter執(zhí)行這些功能。這是因?yàn)镕ileStream類操作的是字節(jié)和字節(jié)數(shù)組,而Stream類操作的是字符數(shù)據(jù)。這是這兩種類的一個(gè)重要區(qū)別,如果你是準(zhǔn)備讀取byte數(shù)據(jù)的話,用StreamReader讀取然后用 System.Text.Encoding.Default.GetBytes轉(zhuǎn)化的話,如下,則可能出現(xiàn)數(shù)據(jù)丟失的情況,如byte數(shù)據(jù)的個(gè)數(shù)不對(duì)等。因此操作byte數(shù)據(jù)時(shí)要用FileStream。
string textContent = fileStream.ReadToEnd();byte[] bytes = System.Text.Encoding.Default.GetBytes(textContent);
字符數(shù)據(jù)易于使用, 但是有些操作,比如隨機(jī)文件訪問(wèn)(訪問(wèn)文件中間某點(diǎn)的數(shù)據(jù)),就必須由FileStream對(duì)象執(zhí)行.
其中創(chuàng)建FileStream對(duì)象最簡(jiǎn)單的構(gòu)造函數(shù)如下:
1
        FileStream file = new FileStream(fileName,FileMode.Member);
2
        FileStream file = new FileStream(fileName, FileMode.Member, FileAccess.Member);
而FileAccess的成員:
成 員
說(shuō) 明
Read
打開(kāi)文件,用于只讀
Write
打開(kāi)文件,用于只寫(xiě)
ReadWrite
打開(kāi)文件,用于讀寫(xiě)
對(duì)文件進(jìn)行不是FileAccess枚舉成員指定的操作會(huì)導(dǎo)致拋出異常。此屬性的作用是,基于用戶的身份驗(yàn)證級(jí)別改變用戶對(duì)文件的訪問(wèn)權(quán)限。
在FileStream構(gòu)造函數(shù)不使用FileAccess枚舉參數(shù)的版本中,使用默認(rèn)值FileAccess. ReadWrite。
FileMode枚舉成員,使用每個(gè)值會(huì)發(fā)生什么,取決于指定的文件名是否表示已有的文件。
成 員
文 件 存 在
文件不存在
Append
打開(kāi)文件,流指向文件的末尾,只能與枚舉FileAccess.Write聯(lián)合使用
創(chuàng)建一個(gè)新文件。只能與枚舉FileAccess.Write聯(lián)合使用
Create
刪除該文件,然后創(chuàng)建新文件
創(chuàng)建新文件
CreateNew
拋出異常
創(chuàng)建新文件
Open
打開(kāi)現(xiàn)有的文件,流指向文件的開(kāi)頭
拋出異常
OpenOrCreate
打開(kāi)文件,流指向文件的開(kāi)頭
創(chuàng)建新文件
Truncate
打開(kāi)現(xiàn)有文件,清除其內(nèi)容。流指向文件的開(kāi)頭,保留文件的初始創(chuàng)建日期
拋出異常
FileStream類操作的是字節(jié)和字節(jié)數(shù)組,而Stream類操作的是字符數(shù)據(jù)
StreamWriter允許將字符和字符串寫(xiě)入文件,它處理底層的轉(zhuǎn)換,向FileStream對(duì)象寫(xiě)入數(shù)據(jù)。StreamReader也類似。
實(shí)例:
1
using System;
2
using System.Data;
3
using System.IO;
4
using System.Text;
5
6
/**//// <summary>
7
/// Summary description for FileReadAndWrite
8
/// </summary>
9
public class FileReadAndWrite
10
{
11
    public FileReadAndWrite()
12
    
{
13
        //
14
        // TODO: Add constructor logic here
15
        //
16
    }
17
    /**//// <summary>
18
    /// 用FileStream寫(xiě)文件
19
    /// </summary>
20
    /// <param name="str"></param>
21
    /// <returns></returns>
22
    public void FileStreamWriteFile(string str)
23
    
{
24
        byte[] byData;
25
        char[] charData;
26
        try
27
        
{
28
            FileStream nFile = new FileStream("love.txt", FileMode.Create);
29
            //獲得字符數(shù)組
30
            charData = str.ToCharArray();
31
            //初始化字節(jié)數(shù)組
32
            byData = new byte[charData.Length];
33
            //將字符數(shù)組轉(zhuǎn)換為正確的字節(jié)格式
34
            Encoder enc = Encoding.UTF8.GetEncoder();
35
            enc.GetBytes(charData, 0, charData.Length,byData,0,true);
36
            nFile.Seek(0, SeekOrigin.Begin);
37
            nFile.Write(byData, 0, byData.Length);
38
        }
39
        catch (Exception ex)
40
        
{
41
            throw ex;
42
        }
43
    }
44
    /**//// <summary>
45
    /// FileStream讀取文件
46
    /// </summary>
47
    /// <param name="filePath"></param>
48
    /// <returns></returns>
49
    public string FileStreamReadFile(string filePath)
50
    
{
51
        byte[] data = new byte[100];
52
        char[] charData = new char[100];
53
        try
54
        
{
55
            FileStream file = new FileStream(filePath, FileMode.Open);
56
            //文件指針指向0位置
57
            file.Seek(0, SeekOrigin.Begin);
58
            //讀入兩百個(gè)字節(jié)
59
            file.Read(data, 0, 200);
60
            //提取字節(jié)數(shù)組
61
            Decoder dec = Encoding.UTF8.GetDecoder();
62
            dec.GetChars(data, 0, data.Length, charData, 0);
63
        }
64
        catch (Exception ex)
65
        
{
66
            throw ex;
67
        }
68
        return Convert.ToString(charData);
69
    }
70
    /**//// <summary>
71
    /// StreamWriter寫(xiě)文件
72
    /// </summary>
73
    public void StreamWriterWriteFile()
74
    
{
75
        try
76
        
{
77
            FileStream nFile = new FileStream("love.txt", FileMode.CreateNew);
78
            StreamWriter writer = new StreamWriter(nFile);
79
80
            writer.WriteLine("I love You!");
81
            writer.WriteLine("Do you love me!");
82
            writer.Close();
83
        }
84
        catch
85
        
{ }
86
    }
87
    /**//// <summary>
88
    /// StreamReader讀取文件
89
    /// </summary>
90
    /// <returns></returns>
91
    public string StreamReaderReadFile()
92
    
{
93
        string str="";
94
        try
95
        
{
96
            FileStream file = new FileStream("love.txt", FileMode.Open);
97
            StreamReader sr = new StreamReader(file);
98
            while (sr.ReadLine()!=null)
99
            
{
100
                str += sr.ReadLine();
101
            }
102
            //或者str = sr.ReadToEnd();
103
            sr.Close();
104
        }
105
        catch
106
        
{ }
107
        return str;
108
    }
109
}
110
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C#讀寫(xiě)txt文件的兩種方法介紹
c#FileStream文件讀寫(xiě)(轉(zhuǎn))
c#文件操作
筆記5:vb.net的FileStream操作
計(jì)算文件的MD5值(比較兩個(gè)文件是否一樣)
C#的輸入輸出流
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服