高级程序设计
验 报
班级 学号: 姓名: 实验名称: 指导老师: 日期: 1
告实
实验十一 文件和流I/O
一、实验题目:文件和流I/O 二、实验内容:
1.掌握磁盘的基本操作 2.掌握目录的基本操作 3.文件的基本操作
4.文本文件的读取和写入 5.字符串的读取和写入
6.二进制文件的读取和写入I 7. 二进制文件的读取和写入2
三、主要程序代码:
1. using System;
using System.IO;
using System.Collections.Generic; using System.Text;
namespace 实验1 {
class Test {
public static void Main() {
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives) {
Console.WriteLine(\, d.Name);
Console.WriteLine(\, d.DriveType); if (d.IsReady == true) {
Console.WriteLine(\, d.VolumeLabel); Console.WriteLine(\, d.DriveFormat); Console.WriteLine(\bytes\,d.AvailableFreeSpace);
Console.WriteLine(\,d.TotalFreeSpace); Console.WriteLine( \, d.TotalSize); } }
Console.ReadKey();
2
} }
2. using System;
using System.IO;
namespace 实验11 {
class Program {
static void Main(string[] args) {
String path0 = @\; String path1 = @\; try{
Console.WriteLine(\应用程序当前工作目录为:\\n {0}\,Directory.GetCurrentDirectory()); string [] subdirectotyEntries
=Directory.GetDirectories(Directory.GetDirectoryRoot(Directory.GetCurrentDirectory())); Console.WriteLine(\根目录中子目录总数为{0},子目录名称分别为:\,subdirectotyEntries.Length);
foreach (string subdirectory in subdirectotyEntries) Console.WriteLine(\, subdirectory);
string[] dirs =Directory.GetFiles(path0);
Console.WriteLine(\目录{0}下的总文件总数为 {1}。文件名称分别为:\, path0, dirs.Length);
foreach (string dir in dirs) Console.WriteLine(\, dir); string[] dirs1 = Directory.GetFiles(path1, \); Console.WriteLine(\目录{0}下拓展名为.sys的文件总数为 {1}。文件名称分别为:\,path1, dirs1.Length);
foreach (string dir in dirs1) Console.WriteLine(\, dir); }
catch (Exception err)
{ Console.WriteLine(\操作失败: {0}\, err.Message); }
Console.ReadLine(); } } }
3 using System; using System.IO;
using System.Collections.Generic;
3
using System.Text;
namespace 文件的基本操作 {
class Program {
static void Main(string[] args) {
string s;
string path = @\; FileInfo fi1 = new FileInfo(path); if (!fi1.Exists) {
using (StreamWriter sw = fi1.CreateText()) {
bool bContinue = true; while (bContinue) {
Console.Write(\请输入文件内容: \); s = Console.ReadLine(); if (s != \) sw.WriteLine(s); else bContinue = false; } } }
fi1 = new FileInfo(path);
Console.WriteLine(\源文件 {0}所在的目录为:\\n\\t{1}\, path, fi1.DirectoryName); Console.WriteLine(\源文件 {0}长度为:\\n\\t{1}\, path, fi1.Length); Console.WriteLine(\源文件 {0}内容为: \, path); using (StreamReader sr = fi1.OpenText()) {
s = \;
while ((s = sr.ReadLine()) != null) Console.WriteLine(\, s); } try {
string path2 = @\; FileInfo fi2 = new FileInfo(path2); fi2.Delete(); fi1.CopyTo(path2);
Console.WriteLine(\源文件成功复制至目标文件:\\n\\t{0}\, path2); fi2.Delete();
Console.WriteLine(\目标文件{0}成功删除\, path2); }
4
catch (Exception e) {
Console.WriteLine(\操作失败:{0}\, e.ToString()); }
Console.ReadKey(); } } }
4.using System;
using System.IO;
using System.Collections.Generic; using System.Text;
namespace 文本文件的读取和写入 {
class Program {
private const string FILE_NAME = @\; static void Main(string[] args) {
using (StreamWriter sw = new StreamWriter(FILE_NAME)) {
sw.WriteLine(\文本文件的写入/读取示例:\); sw.WriteLine(\);
sw.WriteLine(\写入正数、浮点数、Boolean值、字符、字符串、日期\); Console.WriteLine(\请输入整数: \); int i = int.Parse(Console.ReadLine()); sw.WriteLine(i);
Console.WriteLine(\请输入浮点数: \); float f = float.Parse(Console.ReadLine()); sw.WriteLine(f);
Console.WriteLine(\请输入Boolean值: \); bool b = bool.Parse(Console.ReadLine()); sw.WriteLine(b);
Console.WriteLine(\请输入字符: \); char c = char.Parse(Console.ReadLine()); sw.WriteLine(c);
Console.WriteLine(\请输入字符串: \); string s = (Console.ReadLine()); sw.WriteLine(s);
sw.Write(\当前日期为: \); sw.WriteLine(DateTime.Now);
5