完整word版高级程序设计实验报告.docx
- 文档编号:5917704
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:14
- 大小:97.34KB
完整word版高级程序设计实验报告.docx
《完整word版高级程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《完整word版高级程序设计实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
完整word版高级程序设计实验报告
高级程序设计
实验报告
班级
学号:
姓名:
实验名称:
指导老师:
日期:
实验十一文件和流I/O
一、实验题目:
文件和流I/O
二、实验内容:
1.掌握磁盘的基本操作
2.掌握目录的基本操作
3.文件的基本操作
4.文本文件的读取和写入
5.字符串的读取和写入
6.二进制文件的读取和写入I
7.二进制文件的读取和写入2
三、主要程序代码:
1.usingSystem;
usingSystem.IO;
usingSystem.Collections.Generic;
usingSystem.Text;
namespace实验1
{
classTest
{
publicstaticvoidMain()
{
DriveInfo[]allDrives=DriveInfo.GetDrives();
foreach(DriveInfodinallDrives)
{
Console.WriteLine("Drive{0}",d.Name);
Console.WriteLine("Filetype:
{0}",d.DriveType);
if(d.IsReady==true)
{
Console.WriteLine("Volumelabel:
{0}",d.VolumeLabel);
Console.WriteLine("Filesystem:
{0}",d.DriveFormat);
Console.WriteLine("Availablespacetocurrentuser:
{0,15}bytes",d.AvailableFreeSpace);
Console.WriteLine("Totalavailablespace:
{0,15}bytes",d.TotalFreeSpace);
Console.WriteLine("Totalsizeofdrive:
{0,15}bytes",d.TotalSize);
}
}
Console.ReadKey();
}
}
2.usingSystem;
usingSystem.IO;
namespace实验11
{
classProgram
{
staticvoidMain(string[]args)
{
Stringpath0=@"C:
\WINDOWS\security";
Stringpath1=@"C:
\WINDOWS";
try{
Console.WriteLine("应用程序当前工作目录为:
\n{0}",Directory.GetCurrentDirectory());
string[]subdirectotyEntries=Directory.GetDirectories(Directory.GetDirectoryRoot(Directory.GetCurrentDirectory()));
Console.WriteLine("根目录中子目录总数为{0},子目录名称分别为:
",subdirectotyEntries.Length);
foreach(stringsubdirectoryinsubdirectotyEntries)
Console.WriteLine("{0}",subdirectory);
string[]dirs=Directory.GetFiles(path0);
Console.WriteLine("目录{0}下的总文件总数为{1}。
文件名称分别为:
",path0,dirs.Length);
foreach(stringdirindirs)Console.WriteLine("{0}",dir);
string[]dirs1=Directory.GetFiles(path1,"*.ini");
Console.WriteLine("目录{0}下拓展名为.sys的文件总数为{1}。
文件名称分别为:
",path1,dirs1.Length);
foreach(stringdirindirs1)Console.WriteLine("{0}",dir);
}
catch(Exceptionerr)
{Console.WriteLine("\n操作失败:
{0}",err.Message);
}
Console.ReadLine();
}
}
}
3usingSystem;
usingSystem.IO;
usingSystem.Collections.Generic;
usingSystem.Text;
namespace文件的基本操作
{
classProgram
{
staticvoidMain(string[]args)
{
strings;
stringpath=@"c:
\temp\SrcFile.txt";
FileInfofi1=newFileInfo(path);
if(!
fi1.Exists)
{
using(StreamWritersw=fi1.CreateText())
{
boolbContinue=true;
while(bContinue)
{
Console.Write("请输入文件内容:
");
s=Console.ReadLine();
if(s!
="")sw.WriteLine(s);
elsebContinue=false;
}
}
}
fi1=newFileInfo(path);
Console.WriteLine("源文件{0}所在的目录为:
\n\t{1}",path,fi1.DirectoryName);
Console.WriteLine("源文件{0}长度为:
\n\t{1}",path,fi1.Length);
Console.WriteLine("源文件{0}内容为:
",path);
using(StreamReadersr=fi1.OpenText())
{
s="";
while((s=sr.ReadLine())!
=null)Console.WriteLine("\t{0}",s);
}
try
{
stringpath2=@"c:
\temp\DesFile.txt";
FileInfofi2=newFileInfo(path2);
fi2.Delete();
fi1.CopyTo(path2);
Console.WriteLine("源文件成功复制至目标文件:
\n\t{0}",path2);
fi2.Delete();
Console.WriteLine("目标文件{0}成功删除",path2);
}
catch(Exceptione)
{
Console.WriteLine("\n操作失败:
{0}",e.ToString());
}
Console.ReadKey();
}
}
}
4.usingSystem;
usingSystem.IO;
usingSystem.Collections.Generic;
usingSystem.Text;
namespace文本文件的读取和写入
{
classProgram
{
privateconststringFILE_NAME=@"c:
\temp\TestFile.txt";
staticvoidMain(string[]args)
{
using(StreamWritersw=newStreamWriter(FILE_NAME))
{
sw.WriteLine("文本文件的写入/读取示例:
");
sw.WriteLine("...................");
sw.WriteLine("写入正数、浮点数、Boolean值、字符、字符串、日期");
Console.WriteLine("请输入整数:
");
inti=int.Parse(Console.ReadLine());
sw.WriteLine(i);
Console.WriteLine("请输入浮点数:
");
floatf=float.Parse(Console.ReadLine());
sw.WriteLine(f);
Console.WriteLine("请输入Boolean值:
");
boolb=bool.Parse(Console.ReadLine());
sw.WriteLine(b);
Console.WriteLine("请输入字符:
");
charc=char.Parse(Console.ReadLine());
sw.WriteLine(c);
Console.WriteLine("请输入字符串:
");
strings=(Console.ReadLine());
sw.WriteLine(s);
sw.Write("当前日期为:
");
sw.WriteLine(DateTime.Now);
}
try
{
using(StreamReadersr=newStreamReader(FILE_NAME))
{
Stringline;
while((line=sr.ReadLine())!
=null)Console.WriteLine(line);
}
}
catch(Exceptione)
{
Console.WriteLine("该文件不能读取,原因如下:
");
Console.WriteLine(e.Message);
}
Console.ReadKey();
}
}
5.usingSystem;
usingSystem.IO;
usingSystem.Collections.Generic;
usingSystem.Text;
namespace字符串的读取和写入
{
classProgram
{
staticvoidMain(string[]args)
{
strings,textReaderText="";
boolbContinue=true;
while(bContinue)
{
Console.Write("请输入文件内容(以结束):
");
s=Console.ReadLine();
if(s!
="")textReaderText=textReaderText+s+"\n";
elsebContinue=false;
}
Console.WriteLine("原始文本内容如下:
");
Console.WriteLine(".........\n{0}",textReaderText);
stringaLine,aParagraph=null;
StringReaderd=newStringReader(textReaderText);
while(true)
{
aLine=d.ReadLine();
if(aLine!
=null)
{
aParagraph=aParagraph+aLine+"";
}
else
{
aParagraph=aParagraph+"\n";
break;
}
}
Console.WriteLine("修改后的文本(连续的段落aParagraph)内容如下:
");
Console.WriteLine("-------------\n{0}",aParagraph);
inta;
Charb;
StringWriterc=newStringWriter();
d=newStringReader(aParagraph);
while(true)
{
a=d.Read();
if(a==-1)break;
b=Convert.ToChar(a);
if(b=='')
{
c.Write(".\n");
d.Read();
}
elsec.Write(b);
}
Console.WriteLine("\n还原后的原始文本内容textReaderText:
");
Console.WriteLine("-----------\n{0}",c.ToString());
Console.ReadKey();
}
}
}
6.usingSystem;
usingSystem.IO;
usingSystem.Collections.Generic;
usingSystem.Text;
namespace二进制文件的读取和写入
{
classProgram
{
staticvoidMain(string[]args)
{
stringpath=@"c:
\temp\MyTest.txt";
if(File.Exists(path))File.Delete(path);
using(FileStreamfs=File.Create(path))
{
AddText(fs,"Thisissometext.");
AddText(fs,"Thisissomemoretext.");
AddText(fs,"\r\nandThisisonanewline.");
AddText(fs,"\r\n以下是1-100之间的偶数:
\r\n");
intj=0;
for(inti=1;i<=100;i++)
{
if(i%2==0)
{
AddText(fs,i.ToString()+"");
j++;
}
if(j%10==0)AddText(fs,"\r\n");
}
}
using(FileStreamfs=File.OpenRead(path))
{
byte[]b=newbyte[1024];
UTF8Encodingtemp=newUTF8Encoding(true);
while(fs.Read(b,0,b.Length)>0)Console.WriteLine(temp.GetString(b));
}
Console.ReadKey();
}
privatestaticvoidAddText(FileStreamfs,stringvalue)
{
BinaryReadersb=newBinaryReader(fs,Encoding.Default);
byte[]info=newUTF8Encoding(true).GetBytes(value);
fs.Write(info,0,info.Length);
}
}
}
7. usingSystem;
usingSystem.IO;
usingSystem.Collections.Generic;
usingSystem.Text;
namespace二进制文件的读取和写入
{
classprogram
{
privateconststringFILE_NAME=@"c:
\temp\Test.data";
staticvoidMain(string[]args)
{
if(File.Exists(FILE_NAME))
{
Console.WriteLine("文件{0}已经存在,删除之!
",FILE_NAME);
File.Delete(FILE_NAME);
}
FileStreamfs=newFileStream(FILE_NAME,FileMode.CreateNew);
BinaryWriterw=newBinaryWriter(fs);
for(inti=0;i<128;i++)w.Write((int)i);
for(inti=0;i<128;i++)w.Write(Convert.ToChar(i));
w.Close();
fs.Close();
fs=newFileStream(FILE_NAME,FileMode.Open,FileAccess.Read);
BinaryReaderr=newBinaryReader(fs);
Console.WriteLine("0-127的整数:
");
for(inti=0;i<128;i++)Console.Write(r.ReadInt32()+"");
Console.WriteLine("\n0-127的ASCII字符:
");
for(inti=0;i<128;i++)Console.Write(r.ReadChar()+"");
r.Close();fs.Close();
Console.ReadKey();
}
}
}
四、主要运行界面及运行结果:
1.
2
3.
4..
5.
6.
7.
五、实验收获与心得:
通过本章的实习让我更清楚的对文件和流的操作有了一个熟悉和认识,掌握了怎么用C#编写文件的基本操作,文本文件的读取和写入,字符串的读取和写入,二进制文件的读取和写入。
其中第五幅图输出最后字符出现问题,还请老师解惑。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 高级 程序设计 实验 报告