10 在C#中读取文件
我们在前一个练习中已经了解了如何在C#控制台程序(console)中读取用户的输入。现在我们要学习如何从一个文件中读取内容。在下面的练习中,你要格外小心。关于文件的操作,一不小心会损失你的重要文件。
在这个练习中我们首先要创建一个纯文本文件ex10_sample.txt 放到c盘的Exercise10目录下。通常c盘下是没有Exercise10目录的,请先建立这个目录。我们的C#程序会读取这个纯文本文件的内容。如果你不知道如何创建纯文本文件,请首先在网上查一下。如果查不到,可以联系我哦。
这个文件的内容如下:
1. 这是我用c#读取的第一个文件
2. 我和David学习C#,感觉进步很快
3. 我想介绍我的朋友也和David学习C#
我们想实现的功能是用我们的程序打开一个文件,然后把它的内容输出出来。但是我们不想把文件的名字ex10_sample.txt写死在程序里边。我们想在程序运行的时候,让用户输入要打开的文件的名字。
你创建一个项目。解决方案名称为Sloution10,项目名称为Exercise10,项目类型为控制台程序。
点击Program.cs. 在Main方法中加入这些代码。
在这个新的程序中,我们引入一些对我们来说很新的功能。我在这里给大家介绍一下。
15,16行代码:让用户输入要打开的文件名称。文件我们要求放在c盘的exercise10目录下。
20, 21行代码:把文件的目录名称和文件名称连接在一起,组成一个完成的文件路径名称。这样我们的程序才能找到这个文件
23行码:使用C#的File类判断用c盘的exercise10目录下用户指定的文件,是否存在。File.Exists()是File的一个方法,它用文件的完整路径路径名称作为参数,判断该文件是否存在。
这里给大家介绍一个新的语法 if, else
if (判断条件)
{ 判断条件为真要执行的代码}
else
{ 判断条件为假要执行的代码}
如果判断问真,就是true时,则执行 {判断条件为真要执行的代码};如果判断条件为假,则执行{ 判断条件为假要执行的代码}
25行代码:将文件中的内容全部读出来,赋值给一个字符串。当文件很大时,这种方法需要占用很大的内存空间。还有其他一行一行读取文件内容的方法,你可以在网上查一下。如果找不到,可以联系我哦。
27行代码: 将字符串中的内容输出到dos窗口中。
30,34代码:文件名如果用户提供的不对,就会找到文件。在我们的程序里我们会在dos窗口输出一句话,提示用户文件找不到。
运行结果
练习
1. 为每一条语句加上注释,解释它的功能。如果不明白,可以现在网上查询。找不到,记得咨询我。
2. 你自己创建一个新的文本文件和office word文件放在c盘的exercise10目录下,用你的程序打开它们。
3. C#中还有其他读取文件的方法,试着用其他方法读取一下文件
4. 试着理解一下文件编码的概念。在网上搜索一下吧。
5. 如果不指定File.ReadAllText()的编码格式为Encoding.Default。你可以删掉25行File.ReadAllText()的第二个参数Encoding.Default,看一下,文件的内容还会正常显示吗?
付费解答C#入门学习过程中碰到的各种问题。
零基础学习C#入门,大多数的问题都可以通过自学或借助互联网解决。
但是还是会有一些问题,不是那么容易解决,成为了你学习的绊脚石。最后甚至造成你学习的半途而废。通常学习C#编程入门,你会遇到20到30多个你不能很容易解决的问题。
这个时候,你最需要什么呢?
对!一个专业的老师给你帮助!
你在学习本课程中,遇到任何问题都可以通过qq或email想本教程作者进行求助。
只需30元,你就可以得到本教程作者的三次专业解答。所以你只需不到300元就可以顺利的完成C#入门,从此推开软件行业的大门。
付费方式非常简单:
用微信扫描下面的二维码。在付款留言中留下你的qq号或email地址就可以啦。
教育不是要便宜,而是要可靠!真正聪明的人,更懂得花钱让专业的人为自己服务,提高自己的效率。
老师qq:2040227296
老师email:2040227296@qq.com
10 在C#中读取文件的更多相关文章
- 文件_ _android从资源文件中读取文件流并显示的方法
======== 1 android从资源文件中读取文件流并显示的方法. 在android中,假如有的文本文件,比如TXT放在raw下,要直接读取出来,放到屏幕中显示,可以这样: private ...
- 用adb pull命令从android系统中读取文件失败的原因及解决办法
问题:使用adb pull命令从android系统中读取文件失败.显示:Permission denied 原因:是由于文件权限原因引起. 使用ls -l命令查看android系统中的 ...
- Java中读取文件
Java中读取文件,去除一些分隔符,保存在多维数组里面 public void readFile(String filePath) { File file=new File(filePath); Ar ...
- 如何配置一个路径,能够既适合Linux平台,又适合Windows平台,可以从这个路径中读取文件
如何配置一个路径,能够既适合Linux平台,又适合Windows平台,可以从这个路径中读取文件? 目的:就是希望在项目的配置文件中配上一样的路径,不管协作者使用的是什么平台,都能够读到文件. 比如:L ...
- PHP中读取文件的几个方法
整理了一下PHP中读取文件的几个方法,方便以后查阅. 1.fread string fread ( int $handle , int $length ) fread() 从 handle 指向的文件 ...
- R中读取文件,找不到路径问题 No such file or directory
R中读取文件,找不到路径问题 No such file or directory 近日,读取文件时.出现例如以下问题 > passenger = read.csv('internationa ...
- php中读取文件内容的几种方法。(file_get_contents:将文件内容读入一个字符串)
php中读取文件内容的几种方法.(file_get_contents:将文件内容读入一个字符串) 一.总结 php中读取文件内容的几种方法(file_get_contents:将文件内容读入一个字符串 ...
- Spring 中读取文件-ResourceLoaderAware
Spring 中读取文件-ResourceLoaderAware 概述 Spring ResourceLoader为我们提供了一个统一的getResource()方法来通过资源路径检索外部资源.从而将 ...
- java中读取文件以及向文件中追加数据的总结
package gys; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; imp ...
随机推荐
- 洛谷 1937 [USACO10MAR]仓配置Barn Allocation
[题解] 贪心. 把区间按照右端点从小到大排序,右端点相同的按照长度从小到大排序,然后按顺序考虑,能放就放下去. 维护能不能放下去用线段树即可. #include<cstdio> #inc ...
- 洛谷 2966 2966 [USACO09DEC]牛收费路径Cow Toll Paths
[题意概述] 给出一个图,点有正点权,边有正边权,通过两点的代价为两点间的最短路加上路径通过的点的点权最大值. 有M个询问,每次询问通过两点的代价. [题解] 先把点按照点权从小到大排序,然后按照这个 ...
- [bzoj1004][HNOI2008][Cards] (置换群+Burnside引理+动态规划)
Description 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有多少种染色方案,Sun很快就给出了答案.进一步,小春要求染出Sr张红 ...
- 【Codeforces 279C】Ladder
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 设pre[i]表示i往前一直递增能递增多远 设aft[i]表示i往后一直递增能递增多远 如果aft[l]+pre[r]>=(r-l+1) ...
- Hackerrank manasa-and-combinatorics(数学推导)
题意:有n个字符A,2n个字符B,问你能用这3n个字母组成多少种字符串,使得组成的字符串所有前缀与后缀的B的数目都大于等于A的数目,对答案mod 99991 分析:类似卡特兰数 ans=总方案数-存在 ...
- 1043 方格取数 2000 noip 提高组
1043 方格取数 2000 noip 提高组 题目描述 Description 设有N*N的方格图(N<=10,我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0.如下图所示(见样 ...
- sql-server-internals-architecture
http://kevinekline.com/slides/sql-server-internals-architecture/
- ubuntu18.04安装magento2
magento2更新很快,使用的技术都是很前沿的,国内外的技术帖子又很少,安装的时候难免会遇到各种各样的问题.我们单位因为是外资,总部在国外,最近在自主开发电商网站,开发语言是php,首选了magen ...
- BZOJ 3439 Kpm的MCpassword Trie树+可持久化线段树
题目大意:给定n个字符串,对于每一个字符串求以这个字符串为后缀的字符串中第k小的编号 首先将字符串反转 那么就变成了对于每一个字符串求以这个字符串为前缀的字符串中第k小的编号 然后考虑对字符串排序 那 ...
- iOS 打开扬声器以及插入耳机的操作
废话不多说说一下现状 网上好多关于扬声器的操作,可是问题多多.SDK7.X 和SDK7.X以上版本号有点诧异 #import <Foundation/Foundation.h> #impo ...