GVKun编程网logo

Stream冬季大促销:半价GTA5轻松收入囊中(gta5steam打折2021)

19

关于Stream冬季大促销:半价GTA5轻松收入囊中和gta5steam打折2021的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.NETFileStream文件流,StreamRead

关于Stream冬季大促销:半价GTA5轻松收入囊中gta5steam打折2021的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.NET FileStream文件流,StreamReader文本流,MemoryStream内存流几种流的实例、c – 如何将istringstream和ifstream分配给istream变量?、c# – 为什么StreamReader.EndOfStream属性更改BaseStream.Position值、c#FileStream读取StreamReader EndOfStream存在问题等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

Stream冬季大促销:半价GTA5轻松收入囊中(gta5steam打折2021)

Stream冬季大促销:半价GTA5轻松收入囊中(gta5steam打折2021)

今晨,Steam冬季大促正式拉开序幕,G胖牌收银机又到了开足马力工作的时候,时间持续到1月3号。首日上线优惠的大作名单中有《毁灭战士》系列、《巫师3》年度版、《GTA 5》、《文明》全系、《全境封锁》、《正当防卫3》等等。

>

比如《全境封锁》现在半价,国区售价104元,A卡合作游戏《毁灭战士4》大降67%,售价65元,《文明》全系有10%~76%的优惠,其中《文明6》降价10%卖179元,经典的《文明3》仅4元,《文明4》仅16元。另外,开放世界动作游戏《正方防卫3》大降75%卖40元,《GTA 5》半价卖94元,《巫师3》年度版(全DLC)降价41%卖94元(《狂猎》仅63元)。

>

目前,Steam国区支持支付宝、微信、腾讯财付通、银联等多种支付方式。

.NET FileStream文件流,StreamReader文本流,MemoryStream内存流几种流的实例

.NET FileStream文件流,StreamReader文本流,MemoryStream内存流几种流的实例

一、FileStream文件流

1.读取数据

 1    public class ReadFile
 2     {
 3         /// <summary>
 4         /// 读取文件
 5         /// FileMode.Create  创建一个新文件,如果文件已经存在则改写旧文件
 6         /// FileMode.CreateNew 创建一个文件,如果文件存在会发生异常,提示文件已经存在
 7         /// FileMode.Open  打开文件,如果文件不存在则异常
 8         /// FileMode.OpenOrCreate  打开文件,如果文件不存在,则创建一个新的文件并且打开文件
 9         /// FileMode.Append   打开现有文件,并且在现有文件内容后面追加,如果文件不存在则异常
10         /// FileMode.Truncate 根据现有操作系统,截取文件里面的内容,如果文件不存在则异常
11         /// </summary>
12         public static void Read(string FilePath)
13         {
14             FileStream fileStream = null;
15             try
16             {
17               fileStream = new FileStream(FilePath, FileMode.Truncate);
18                 byte[] bytes = new byte[fileStream.Length];
19                 int read = fileStream.Read(bytes, 0, bytes.Length);
20                 var result = Encoding.UTF8.GetString(bytes);
21             }
22             catch (Exception e)
23             {
24                 if (fileStream != null)
25                 {
26                     fileStream.Dispose();
27                 }
28                 Console.WriteLine(e.Message);
29             }
30             finally
31             {
32                 if (fileStream != null)
33                 {
34                     fileStream.Close();
35                     fileStream.Dispose();
36                 }
37             }
38         }
39     }

2.写入数据

 1    public class WriteFile
 2     {
 3         public static void WriteText(string FilePath,string writeString)
 4         {
 5             FileStream fileStream = null;
 6             try
 7             {
 8                 //根据路径打开文件
 9                 fileStream = new FileStream(@"C:\Users\Administrator\source\repos\OperatFile\OperatFile\1.txt", FileMode.Append);
10                 //把字符串转化成字节
11                 byte[] bytes = Encoding.UTF8.GetBytes(writeString);
12                 //写入到文件
13                 fileStream.Write(bytes, 0, bytes.Length);
14             }
15             catch (Exception e)
16             {
17           if (fileStream != null)
18                 {
19                     fileStream.Dispose();
20                 }
21                 Console.WriteLine(e.Message);
22             }
23             finally
24             {
25                 //关闭和释放
26                 if (fileStream != null)
27                 {
28                     fileStream.Close();
29                     fileStream.Dispose();
30                 }
31             }
32         }
33     }

二、StreamReader文本流

1.读取数据

 1    public class SteamReadFile
 2     {
 3         /// <summary>
 4         /// 读取文件
 5         /// </summary>
 6         /// <param name="filePath">文件路径</param>
 7         public static void ReadFile(string FilePath)
 8         {
 9             try
10             {
11                 using (StreamReader sr = new StreamReader(FilePath))
12                 {
13                     var result = sr.ReadToEnd();
14                     Console.WriteLine(result);
15                 }
16             }
17             catch (Exception e)
18             {
19 
20                 throw new Exception(e.Message);
21             }
22         }
23     }

2.写入数据

 1    public class StreamWriteFile
 2     {
 3         /// <summary>
 4         /// 写入文件
 5         /// </summary>
 6         /// <param name="FilePath">文件路径</param>
 7         /// <param name="WriteString">待写入字符串</param>
 8         public static void WriteFile(string FilePath,string WriteString)
 9         {
10             try
11             {
12                 using (StreamWriter sr = new StreamWriter(FilePath))
13                 {
14                     sr.WriteLine(WriteString);
15                 }
16             }
17             catch (Exception e)
18             {
19                 throw new Exception(e.Message);
20             }
21         }
22     }

3.写入日志实例

 1    public class LogHelper
 2     {
 3         /// <summary>
 4         /// 文件路径
 5         /// </summary>
 6         public static string FilePath = @"C:\Users\Administrator\source\repos\OperatFile\OperatFile\Files";
 7         static LogHelper()
 8         {
 9             //判断文件夹是否存在,如果不存在,则重新创建
10             if (!Directory.Exists(FilePath))
11             {
12                 Directory.CreateDirectory(FilePath);
13             }
14         }
15      /// <summary>
16         /// 日志写入
17         /// Path.Combine(str1,str2,str3)  把传入的参数拼接起来,然后返回新的字符串
18         /// File.AppendText(fullPath) 根据文件路径,把新写入的内容,拼接到文本后面
19         /// </summary>
20         public static void WriteLog()
21         {
22             try
23             {
24                 var sb = BindData();
25                 string fullPath = Path.Combine(FilePath, $"{DateTime.Now.ToString("yyyy-MM-dd")}.txt");
26                 //判断文件是否存在,如果不存在,则新建文件
27                 if (!File.Exists(fullPath))
28                 {
29                     File.Create(fullPath);
30                 }
31                 using (StreamWriter sw = File.AppendText(fullPath))
32                 {
33                     sw.WriteLine(sb.ToString());
34                 }
35             }
36             catch (Exception e)
37             {
38                 throw new Exception(e.Message);
39             }
40 
41         }
42      /// <summary>
43         /// 绑定日志信息
44         /// </summary>
45         /// <returns></returns>
46         private static StringBuilder BindData()
47         {
48             StringBuilder sb = new StringBuilder();
49             DateTime operatDateTime = DateTime.Now;
50             string content = "读写文件功能";
51             string operators = "小明";
52             sb.AppendLine($"操作时间:{operatDateTime}");
53             sb.AppendLine($"操作内容:{content}");
54             sb.AppendLine($"操作人:{operators}");
55             sb.AppendLine("------------------------------------------------------------------------------------------");
56             return sb;
57         }
58     }

三、MemoryStream内存流

 1      /// <summary>
 2         /// 根据URL读取内容到内存流
 3         /// </summary>
 4         /// <param name="url"></param>
 5         /// <returns></returns>
 6         public static string DownLoadByUrl(string url)
 7         {
 8             string result = string.Empty;
 9             MemoryStream ms = null;
10             HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
11             HttpWebResponse response = request.GetResponse() as HttpWebResponse;
12             using (var stream = response.GetResponseStream())
13             {
14           byte[] buffer = new byte[response.ContentLength];
15                 int actuallyRead = 0, offset = 0;
16                 do
17                 {
18                     actuallyRead = stream.Read(buffer, offset, buffer.Length - offset);
19                     offset += actuallyRead;
20 
21                 } while (actuallyRead > 0);
22                 ms = new MemoryStream(buffer);
23                 ms.Seek(0, SeekOrigin.Begin);
24                 var byteArray = new byte[ms.Length];
25                 ms.Read(byteArray, 0, byteArray.Length);
26                 result = Encoding.UTF8.GetString(byteArray);
27             }
28             response.Close();
29             response.Dispose();
30             return result;
31         }

 

c – 如何将istringstream和ifstream分配给istream变量?

c – 如何将istringstream和ifstream分配给istream变量?

我想要一个istream类型的变量,它可以保存文件的内容或字符串.我们的想法是,如果没有指定文件,那么istream类型的变量将被赋予一个字符串.

std::ifstream file(this->_path)

std::istringstream iss(stringSomething);

std::istream is

我试过将它们分配给istream变量,就像我从其他从同一基类继承的对象那样,但是没有用.

如何将istringstream和ifstream分配给istream变量?

解决方法

基类指针可以指向派生类数据. std :: istringstream和std :: ifstream都是从std :: istream派生的,所以我们可以这样做:

//Note that std::unique_ptr is better that raw pointers
std::unique_ptr<std::istream> stream;

//stream holds a file stream
stream = std::make_unique<std::ifstream>(std::ifstream{ this->_path });

//stream holds a string
stream = std::make_unique<std::istringstream>(std::istringstream{});

现在你只需要使用提取内容

std::string s;
(*stream) >> s;

c# – 为什么StreamReader.EndOfStream属性更改BaseStream.Position值

c# – 为什么StreamReader.EndOfStream属性更改BaseStream.Position值

我写了这个小程序,它从Random.txt读取每第5个字符
在random.txt中,我有一行文字:ABCDEFGHIJKLMnopRST.我得到了预期的结果:

> A的位置为0
> F的位置是5
> K的位置是10
> P的位置是15

这是代码:

static void Main(string[] args)
{
    StreamReader fp;
    int n;
    fp = new StreamReader("d:\\RANDOM.txt");
    long prevIoUsBSposition = fp.BaseStream.Position;
    //In this point BaseStream.Position is 0,as expected
    n = 0;

    while (!fp.EndOfStream)
    {
        //After !fp.EndOfStream were executed,BaseStream.Position is changed to 19,//so I have to reset it to a prevIoUs position :S
        fp.BaseStream.Seek(prevIoUsBSposition,SeekOrigin.Begin);
        Console.WriteLine("Position of " + Convert.tochar(fp.Read()) + " is " + fp.BaseStream.Position);
        n = n + 5;
        fp.discardBufferedData();
        fp.BaseStream.Seek(n,SeekOrigin.Begin);
        prevIoUsBSposition = fp.BaseStream.Position;
    }
}

我的问题是,为什么在行之后(!fp.EndOfStream)将BaseStream.Position更改为19,例如BaseStream的结尾.当我调用EndOfStream检查时,我预计,显然是错误的,BaseStream.Position将保持不变?

谢谢.

解决方法

只有某种方法来确定Stream是否在其末端才能实际从中读取内容并检查返回值是否为0.(StreamReader有另一种方法 – 检查其内部缓冲区,但你正确地不让它做通过调用discardBufferedData.)

因此,EndOfStream必须从基本流中读取至少一个字节.而且,由于逐字节读取效率低下,因此读取的内容更多.这就是为什么调用EndOfStream将位置更改为结尾的原因(对于较大的文件,它不会是文件的结尾).

看来你实际上并不需要使用StreamReader,所以你应该直接使用Stream(或者特别是FileStream):

using (Stream fp = new FileStream(@"d:\RANDOM.txt",FileMode.Open))
{
    int n = 0;

    while (true)
    {
        int read = fp.ReadByte();
        if (read == -1)
            break;

        char c = (char)read;
        Console.WriteLine("Position of {0}  is {1}.",c,fp.Position);
        n += 5;
        fp.Position = n;
    }
}

(我不确定在这种情况下设置位置超出文件末尾的位置,您可能需要为此添加一个检查.)

c#FileStream读取StreamReader EndOfStream存在问题

c#FileStream读取StreamReader EndOfStream存在问题

正如标题所说,我发现了一个问题.小故事第一:
我们有file.txt看起来像这样:

aaaabb
ccccddd
eeeefffffff

有许多方法可以逐行阅读本文,其中一种方法是:

StreamReader sr = new StreamReader("file.txt");
while(!sr.EndOfStream)
{
    string s = sr.ReadLine();
}
sr.Close();

作品.获得每一行.
现在我需要前4个字母作为字节,其余的作为字符串.在查看事物并尝试一点后,我发现最简单的方法是:

FileStream fs = new FileStream("file.txt",FileMode.Open);
StreamReader sr = new StreamReader(fs);
byte[] arr = new byte[4];
fs.Read(arr,4);
string s = sr.ReadLine();
sr.Close();
fs.Close();

作品. arr包含前4个字母作为字节,其余部分保存在s中.这只是一行.如果我们添加while:

FileStream fs = new FileStream("file.txt",FileMode.Open);
StreamReader sr = new StreamReader(fs);
while(!sr.EndOfStream)
{
    byte[] arr = new byte[4];
    fs.Read(arr,4);
    string s = sr.ReadLine();
} 
sr.Close();
fs.Close();

现在有一个问题.现在arr没有得到任何东西,并且s读取整行,包括前4个字母.更奇怪的是,如果我使用while(true)(并且我假设其他任何不是示例)而不是按预期工作,则4个字符作为字节,其余为字符串,这对于每一行都是相同的.

问题是我错过了什么?为什么会这样?我该如何解决这个问题?或者这可能是一个错误?

解决方法

这里的问题是简单的缓冲.当您将StreamReader附加到FileStream时,它最终会从文件中占用一个块,从而推进FileStream的当前位置.使用您的示例文件和默认缓冲区大小,一旦StreamReader附加自身,它基本上将整个文件消耗到缓冲区中,使FileStream保持其EOF.然后,当您尝试直接通过fs引用从FileStream读取4个字节时,没有什么可以消耗的.以下ReadLine适用于您的sr引用,因为它是从缓冲文件内容中读取的.

以下是对正在发生的事情的逐步细分:

> fs打开文件并位于位置0.
> sr包装fs并且对EndOfStream的调用最终消耗(在这种情况下)27个字节到其内部缓冲区.此时,fs Position现在位于EOF.
>您尝试直接读取fs,但它在EOF处没有更多字节.
> sr.ReadLine从步骤#2中构建的缓冲区中读取,一切正常.

要修复特定的错误情况,可以将字节数组更改为char数组,然后使用sr.Read.即

char[] arr = new char[4];
sr.Read(arr,4);

我们今天的关于Stream冬季大促销:半价GTA5轻松收入囊中gta5steam打折2021的分享就到这里,谢谢您的阅读,如果想了解更多关于.NET FileStream文件流,StreamReader文本流,MemoryStream内存流几种流的实例、c – 如何将istringstream和ifstream分配给istream变量?、c# – 为什么StreamReader.EndOfStream属性更改BaseStream.Position值、c#FileStream读取StreamReader EndOfStream存在问题的相关信息,可以在本站进行搜索。

本文标签: