Liam的C# 学习历程(八):数据流(Streams)

  在这节C#课上,老师为我们讲述了第22章数据流的相关内容。首先我们需要用到的类在System.IO的命名空间中。这些类包括了表示磁盘上某个文件的File类,以及表示目录的Directory类。

  接下来我们就通过一些例子来体会一下:

(一)、二进制输入:

using System;
using System.IO;

namespace ImplementingBinaryReadWriteToFile
{
    class Tester
    {
        const int SizeBuff = 1024;

        public static void Main()
        {
            // 创建一个instance
            Tester t = new Tester();
            t.Run();
        }

        //加入文件名
        private void Run()
        {
            //输入文件文件名
            Stream inputStream = File.OpenRead(
                @"C:\test\source\test1.cs");

            // 输出文件文件名
            Stream outputStream = File.OpenWrite(
                @"C:\test\source\test1.bak");

            byte[] buffer = new Byte[SizeBuff];
            int bytesRead;

            // 按bytes返回值
            while ((bytesRead =
            inputStream.Read(buffer, 0, SizeBuff)) > 0)
            {
                outputStream.Write(buffer, 0, bytesRead);
            }
、
            inputStream.Close();
            outputStream.Close();
        }
    }
}

(二)、对文件进行读写:

using System;
using System.IO;

namespace ReadingWritingToTextFile
{
    class Tester
    {
        public static void Main()
        {
            Tester t = new Tester();
            t.Run();
        }

        private void Run()
        {
            // 打开文件
            FileInfo theSourceFile = new FileInfo(
                @"C:\test\source\test.cs");

            // 创建一个text reader
            StreamReader reader = theSourceFile.OpenText();

            //创建一个text writer to the new file
            StreamWriter writer = new StreamWriter(
                @"C:\test\source\test.bak", false);

            // 创建一个变量来出差每行内容
            string text;

            // 执行读取每一行
            // 输出到控制台和文件中
            do
            {
                text = reader.ReadLine();
                writer.WriteLine(text);
                Console.WriteLine(text);
            } while (text != null);

            reader.Close();
            writer.Close();
        }
    }
}
时间: 2024-08-02 14:51:14

Liam的C# 学习历程(八):数据流(Streams)的相关文章

Liam的C# 学习历程(六):LINQ(Language-INtegrated Query)

在这一周的C#课程中,我们学习了一些在C#编程中需要用到的对数据库或XML文件进行处理的操作,这就是LINQ,它使得一种类似与我们在数据库中常用的SQL语言的查询语言成为了C#语言的一部分,方便了我们搜索数据库等方面的操作.下面我们就来一起复习一下. (一)创建LINQ(Creating the Query): 1.From字句(The from clause):指定范围变量和数据源 from customer in customers //customer:range variable fro

Liam的C# 学习历程(七):WPF(Windows Presentation Foundation)、Windows Form Applications

在今天的课堂中,老师向我们讲述了关于一些WPF(Windows Presentation Foundation)和Windows Form Applications的内容,接下来就让我们一起来复习一下: (一).WPF(Windows Presentation Foundation): WPF是一个重要运用于desktop手机开发方面.它使用到了一种XML的变形语言——XAML的语言(eXtensible Application Markup Language). 使用XAML开发人员可以对WP

Liam的C# 学习历程(五):正则表达式(Regular Expressions)

在这周的C#课堂上,我们学习了一些关于正则表达式的知识,结合老师上课所讲的,我又在网上搜索了一些相关的知识,接下来就让我们来实验一下. 首先我们先来复习一些在Linux课堂上学习过的简单的正则表达式的符号: “ . ” :通配一个单个字符,例如“a."可以在“ab.ac.cd.a1.abc”中通配出:“ab.ac和a1”: “.. ” :  与上一个类似,通配两个任意的字符. “ * ”:通配前一个字符的多次出现,  例如“a*”可以通配出:空.a.aa.aaa等: “{}”:可以通配出前一个字

Liam的C# 学习历程(三):类与对象、继承与多态

在这一次的课程中,我们主要学习了C#中一些关于类的的具体应用和面向对象(OOP)的三大特点:封装(Encapsulation).多态(Polymorphism)和继承(Inheritance).接下来就让我们来实验一下学到的知识. (一)This 关键字 this关键字(又称this指针)是类中所有非静态方法的隐藏指针. 调用this的方法有很多种,首先是在收到与成员变量同名的参数时,使用this可以避免混淆,就像下面过程所演示的: 成员函数SomeMethod收到了一个与成员变量hour同名的

Liam的C# 学习历程(九):实验学习

在最近的几周里,我们结合老师在课堂上所讲的知识,以及课下在通过视频学习的内容,通过Win8.1 App.WP8.1 App以及WPF的三种形式,联系了C#的一些具体的编程方法.下面我们就来回顾一下在编程过程中所使用到的一些方法: (一).页面之间的跳转: 对于这一部分,在编写Windows App时和编写WPF是所使用的方法是不同的,下面就分别来介绍一下: 1.Windows App: Frame.Navigate(typeof(DetailPage), file1); //跳转至名为Detai

Liam的软件测试学习历程(三):JUint使用

今天的上机课上,我尝试了使用JUint和EclEmma对项目进行测试. 首先是这两个工具的安装,JUint比较容易,只需将需要的jar包引入到项目中即可,而EclEmma则需要在Eclipse中选择安装新软件来进行安装. 安装好后,是完成对待测项目的编程,这次的测试代码是一个检测三角形形状的方法.我的代码如下: package com.triangleProblem; import junit.framework.Test; public class Triangle { public Tria

Liam的软件测试学习历程(二):查找错误的两道例题

观察两段代码并回答下列问题: (1) 发现错误代码: (2) 试着编写测试用例,不执行fault部分: (3) 执行fault部分,但不出现error情况: (4) 出现error情况,但不发生failure. 代码一: public int findLast (int[] x, int y) { //Effects: If x==null throw NullPointerException // else return the index of the last element // in

Liam的软件测试学习历程(五):Selenium测试

今天的实验是使用Selenium进行Web的测试.首先需要在Firefox中安装相关插件Selenium.安装好后,在Firefox右上角会出现一个标志:.出现这个标志就代表安装好了. 接下来点击这个按钮,就会出现Selenium IDE的界面: 单击右侧红色的录制按钮开始录制.录制的步骤即为测试一个用例要进行的所有步骤,包括填入网址,输入学号密码等.最后选中结果界面中的邮箱,邮件选择assertText. 之后在Selenium IDE中输出相应的结果,注意在输出钱要在option中勾选Ena

Liam的C# 学习历程(九):最终产品规格说明书

"What is Today's Memory"规格说明书 Course Registration Problem Statement Version 1.0 Revision History Date Issue Description Author 17/May/2015 1.0 Initial creation. Finished the basic usage of original design. Liu Chang Course Registration Problem S