文件File操作

合集下载

Quick BASIC的文件操作

Quick BASIC的文件操作

Quick BASIC的文件操作在2004年2月江苏省青少年信息学奥林匹克竞赛委员会发布的“小学组初、复赛命题大纲(试用稿)”中指出:(对于复赛)在适当的时候考虑引入对文件的输入操作。

在今年的小学组复赛中,将会在部分题目中引入文件的输入操作。

由于以往竞赛没有涉及文件操作,所以现有的小学信息学奥赛教材也都没有介绍这部分内容。

为帮助同学和老师准备竞赛,我们编写了本文。

下面分几个部分简单介绍一下相关知识。

文件的概念文件(file)也叫作文档,是放在磁盘(包括硬盘、软盘、U盘、光盘)的一批数据,每个文件必须有一个文件全名,操作员和程序员用文件全名来指明文件。

文件全名包括盘符、若干级目录、文件名、文件类型。

.例如: d:\mydir\basic\data.txt这里,盘符= d:,而且有三级目录,每个斜线引出一级目录,文件名= data ,每级目录和文件名都不得超8个字符,文件类型=.txt,这是最常见的正文文件类型。

我们知道,计算机的内存容量小,造价高,而且还有一个严重的缺点——易失性,就是说一旦关闭了电源,内存中的全部内容就统统丢失了。

为此人们引进了磁盘文件作为内存的补充。

那么文件有什么用途呢?举例说吧,假如你是班学习委员,编了一个记分的程序。

第一天你输入了10个同学的各科成绩,然后你就关机睡觉了。

第二天打开机器,你的数据就不翼而飞了,还得从头再来。

如果你会使用文件,那就好办了。

第一天你键入了一些数据,下机前把它们记入文件,即使关机了文件中的数据也不会丢失,第二天只要让QBASIC打开文件并把其中数据读入到内存,就可以继续输入了。

还有一种情况应该使用文件。

如果一个程序需要读取许多数据,若是每次都从键盘敲入,那么既麻烦又容易出错。

我们可以把数据做成一个文件,并且让程序读取其中的数据。

这样一来程序可能具有更大的灵活性。

按照文件中数据的表现形式来分类,可以将文件分成正文文件和二进制文件。

正文文件也叫做ASCII文件,其中的数据都是由ASCII代码构成的,例如我们在QuikBASIC下编写的BASIC语言源文件(类型为.BAS)。

c语言 file用法

c语言 file用法

c语言file用法在C语言中,文件操作是编程中常见的一项任务。

使用文件,我们可以存储和读取数据,例如配置信息、日志数据等。

C语言提供了许多函数来处理文件,包括文件的打开、读取、写入和关闭等操作。

下面是一些关于如何在C语言中使用文件的例子。

首先,我们需要包含头文件`stdio.h`,它包含了文件操作的函数和宏定义。

```c#include <stdio.h>```1. 打开文件使用`fopen`函数打开一个文件。

这个函数需要两个参数:第一个参数是文件路径,第二个参数是打开文件的模式。

常见的模式有:`"r"`表示读取模式,`"w"`表示写入模式,如果文件不存在则创建,`"a"`表示追加模式,如果文件不存在则创建。

```cFILE *fp = fopen("file.txt", "r");if (fp == NULL) {printf("打开文件失败!\n");return 1;}```2. 读取文件使用`fscanf`函数从文件中读取数据。

这个函数的用法和`scanf`函数类似,只不过它是从文件中读取数据而不是从标准输入中读取。

```cchar buffer[100];while (fscanf(fp, "%s", buffer) != EOF) {printf("%s\n", buffer);}```3. 写入文件使用`fprintf`函数向文件中写入数据。

这个函数的用法和`printf`函数类似,只不过它是将数据写入到文件中而不是输出到标准输出中。

```cFILE *fp = fopen("file.txt", "w");if (fp == NULL) {printf("打开文件失败!\n");return 1;}fprintf(fp, "Hello, world!");fclose(fp);```4. 关闭文件使用`fclose`函数关闭一个文件。

C语言文件操作读写文件和错误处理

C语言文件操作读写文件和错误处理

C语言文件操作读写文件和错误处理一、文件操作概述文件操作是指通过编程语言对计算机文件进行读取和写入的过程。

在C语言中,文件操作是通过标准库函数来实现的,主要包括打开文件、读写文件、关闭文件、错误处理等步骤。

本文将介绍C语言中文件操作的基本流程以及常见的错误处理方式。

二、打开文件在C语言中,可以使用fopen函数来打开文件。

其基本语法如下:FILE *fopen(const char *filename, const char *mode);其中,filename是要打开的文件名,可以是绝对路径或相对路径;mode是打开文件的模式,常见的模式包括:- "r":只读模式,打开文件进行读取- "w":写入模式,创建新文件,若文件已存在则先清空内容- "a":追加模式,打开文件进行写入,若文件不存在则创建新文件- "r+":读写模式,打开文件进行读写- "w+":读写模式,创建新文件,若文件已存在则先清空内容- "a+":读写模式,打开文件进行读写,若文件不存在则创建新文件,并在文件末尾添加内容打开文件后,会返回一个FILE型的指针,用于后续的读写操作。

三、读取文件1. 逐字符读取可以使用fgetc函数来逐字符读取文件内容。

其基本语法如下:int fgetc(FILE *stream);其中,stream是打开的文件的指针,函数会依次读取文件中的每个字符,并返回ASCII码值。

当读取到文件末尾时,返回EOF。

2. 逐行读取可以使用fgets函数来逐行读取文件内容。

其基本语法如下:char *fgets(char *str, int n, FILE *stream);其中,str是用来存储读取内容的字符数组,n是最大读取字符数(包括换行符),stream是打开的文件的指针。

函数会将读取到的一行内容(包括换行符)存储到str中,并返回str的地址。

File文件操作

File文件操作

package zixue;import java.io.File;import java.io.FilenameFilter;public class Filef {public static void main(String[] args) { File file=newFile("E:\\User\\Di3zhou\\src");//method3(file);method4(file,0);// method3(file)的扩展带分级目录//remove(new File(" "));对文件进行删除操作}public static void method3(File dir){ /*列出指定目录下文件或者文件夹,包含子目录中的内容,也就是列出指定目录下的所有文件*/System.out.println(dir);File[] files=dir.listFiles();for(File f: files){if(f.isDirectory())method3(f);System.out.println(f);}}public static String getLevel(int level){ StringBuilder sbBuilder=newStringBuilder();sbBuilder.append("!--");for(int i=0;i<level;i++){sbBuilder.insert(0, "! ");}return sbBuilder.toString();}public static void method4(File dir,int level){System.out.println(getLevel(level)+dir.ge tName());level++;File[] files=dir.listFiles();for(File f: files){if(f.isDirectory())method4(f,level);System.out.println(getLevel(level)+f);}}public static void remove(File dir){ /*删除原理* 在wimdos中,删除目录从里面往外面删除的,* 既然是从里面往外面删除的就需要用到递归。

file读写操作

file读写操作

file读写操作文件读写操作是计算机中常用的一种操作,通常用于读取和写入数据。

在实现这些操作时,需要执行一些基本的操作,如打开、关闭、读取和写入等。

这篇文章将探讨文件读写操作的基本知识,包括文件的打开和关闭、读取和写入文件、以及一些常见的错误和解决方法。

一、文件打开和关闭在进行文件读写操作之前,需要先打开文件。

打开文件的目的是将文件加载到计算机内存中,以便进行读写操作。

在 Python 中,可以使用 open() 函数打开文件,语法如下:file = open('filename','mode')其中,filename 是需要打开的文件名,mode 是打开文件的模式,包括:· r:只读模式,只能读取文件,不能写入。

· w+:读写模式,可以同时进行读取和写入文件,但是每次写入时会先将文件清空。

例如:表示以只读模式打开名为 test.txt 的文件。

读取和写入操作完成后,需要关闭文件,以释放内存和文件资源。

文件的关闭可以使用 close() 函数,语法如下:file.close()当文件打开后,就可以进行读写操作了。

二、读取文件操作file = open('test.txt','r')text = file.read()print(text)file.close()该程序会先打开名为 test.txt 的文件,在屏幕上输出文件内容,然后关闭文件。

如果我们只想读取文件的一部分内容,可以使用 readline() 或 readlines() 方法。

其中 readline() 方法每次只读取一行数据,读取完一行数据后就停止,可多次使用读取多行内容。

语法如下:该程序会读取 test.txt 文件的前三行并输出。

如果要读取整个文件的所有行,可以使用 readlines() 方法。

该方法将文件中的所有行读取到一个列表中,并返回该列表。

C语言--file文件指针及操作

C语言--file文件指针及操作

C语⾔--file⽂件指针及操作⽂件⽂件的基本概念 所谓“⽂件”是指⼀组相关数据的有序集合。

这个数据集有⼀个名称,叫做⽂件名。

实际上在前⾯的各章中我们已经多次使⽤了⽂件,例如源程序⽂件、⽬标⽂件、可执⾏⽂件、库⽂件 (头⽂件)等。

⽂件通常是驻留在外部介质(如磁盘等)上的,在使⽤时才调⼊内存中来。

从不同的⾓度可对⽂件作不同的分类。

从⽤户的⾓度看,⽂件可分为普通⽂件和设备⽂件两种。

普通⽂件是指驻留在磁盘或其它外部介质上的⼀个有序数据集,可以是源⽂件、⽬标⽂件、可执⾏程序;也可以是⼀组待输⼊处理的原始数据,或者是⼀组输出的结果。

对于源⽂件、⽬标⽂件、可执⾏程序可以称作程序⽂件,对输⼊输出数据可称作数据⽂件。

设备⽂件是指与主机相联的各种外部设备,如显⽰器、打印机、键盘等。

在操作系统中,把外部设备也看作是⼀个⽂件来进⾏管理,把它们的输⼊、输出等同于对磁盘⽂件的读和写。

通常把显⽰器定义为标准输出⽂件,⼀般情况下在屏幕上显⽰有关信息就是向标准输出⽂件输出。

如前⾯经常使⽤的printf,putchar 函数就是这类输出。

键盘通常被指定标准的输⼊⽂件,从键盘上输⼊就意味着从标准输⼊⽂件上输⼊数据。

scanf,getchar函数就属于这类输⼊。

从⽂件编码的⽅式来看,⽂件可分为ASCII码⽂件和⼆进制码⽂件两种。

ASCII⽂件也称为⽂本⽂件,这种⽂件在磁盘中存放时每个字符对应⼀个字节,⽤于存放对应的ASCII码。

例如,数5678的存储形式为:ASC码: 00110101 00110110 00110111 00111000 ↓ ↓ ↓ ↓⼗进制码: 5 6 7 8 共占⽤4个字节。

ASCII码⽂件可在屏幕上按字符显⽰,例如源程序⽂件就是ASCII⽂件,⽤DOS命令TYPE可显⽰⽂件的内容。

由于是按字符显⽰,因此能读懂⽂件内容。

⼆进制⽂件是按⼆进制的编码⽅式来存放⽂件的。

例如,数5678的存储形式为: 00010110 00101110只占⼆个字节。

file函数用法

file函数用法

file函数用法(最新版)目录1.文件操作概述2.file 函数的定义和作用3.file 函数的基本用法4.file 函数的高级用法5.file 函数的实例正文1.文件操作概述在 Python 中,文件操作是一个非常常见的任务。

Python 提供了许多用于处理文件的函数和方法,使得文件操作变得简单易行。

本文将介绍Python 中的文件操作函数 file,帮助读者更好地理解和使用这个函数。

2.file 函数的定义和作用file 函数是 Python 内置的一个函数,主要用于打开和操作文件。

通过 file 函数,我们可以对文件进行读取、写入和追加等操作。

file 函数在 Python 的标准库中,因此无需导入任何模块即可直接使用。

3.file 函数的基本用法file 函数的基本用法如下:```pythonfile(mode, filename)```其中,mode 表示文件的操作模式,filename 表示要操作的文件名。

mode 参数的取值有多种,常用的有"r"(只读模式)、"w"(写入模式)、"a"(追加模式)和"x"(创建模式)。

filename 参数表示要操作的文件路径。

如果未指定文件名,则默认为当前工作目录下的文件。

例如,以下代码将打开名为"example.txt"的文件,并以只读模式("r")读取文件内容:```pythonfile = open("example.txt", "r")```4.file 函数的高级用法除了基本的文件操作,file 函数还提供了一些高级用法,如文件指针的移动、文件大小的获取等。

下面介绍几个常用的方法:- seek(offset, whence=0):将文件指针移动到指定位置。

offset 表示要移动的偏移量,whence 表示偏移量的基准位置,取值有 0(文件开头)、1(当前位置)和 2(文件末尾)。

三个常用的文件操作方法

三个常用的文件操作方法

三个常用的文件操作方法文件操作是我们在计算机编程和日常使用中经常遇到的问题之一、在以下内容中,我将介绍三种常用的文件操作方法,并探讨它们的应用场景和一些实际的示例。

1.打开文件:打开文件是进行文件操作的第一步,我们需要指定要打开的文件名和打开的模式。

常见的文件打开模式包括:-"r":只读模式,用于读取文件中的内容。

-"w":写入模式,用于向文件中写入内容。

如果文件不存在则创建一个新文件,如果文件已存在则会覆盖原有内容。

-"a":追加模式,用于向文件中追加内容。

如果文件不存在则创建一个新文件。

-"x":独占创建模式,如果文件已存在则会抛出一个错误。

示例代码:```python#打开一个文件,并读取其内容file = open("example.txt", "r")content = file.readprint(content)file.close#打开一个文件,并写入内容file = open("example.txt", "w")file.write("Hello, World!")file.close#打开一个文件,并追加内容file = open("example.txt", "a")file.write("Hello, World Again!")file.close```2.读取文件内容:读取文件内容是文件操作的常见需求之一、我们可以使用不同的方式来读取文件内容,比如逐行读取和一次性读取。

逐行读取示例代码:```pythonfile = open("example.txt", "r")for line in file:print(line)file.close```一次性读取示例代码:```pythonfile = open("example.txt", "r")content = file.readprint(content)file.close```3.写入文件内容:写入文件内容是进行文件操作的另一个常见需求。

C语言File文件操作

C语言File文件操作
putchar(ch);
(in非))0);文件未结束,返回0 c(in), out);
close(out);
fclcohs=e(gfept)c;har()判; 断文本文件是否结束 }} fclose(fp);
}
数据块I/O:fread与fwrite
❖函数原型:
size_t fread(void *buffer,size_t size, size_t count,FILE *fp) size_t fwrite(void *buffer,size_t size, size_t count,FILE *fp)
{
return;
int i;
}
for(i=0;i<SIZE;i++)
for(i=0;i<SIZE;i++)
scanf("%s%d%d%s",stud[i].nam{e,&frsetaudd([&i]s.ntuudm[i,],sizeof(struct student_type),1
&stud[i].age,stupdr[iin].tafd("d%r)-;10s %4d %4d %-15s\n",stud[i].n
❖返值:
if((fp=fopen("file.tx
fgets正常时返回读取字符串的首地址;出错或{文件pr尾in,tf返("c回ann't opputs正常时返回写入的最后一个字符;出错为{EOfFputs(string,fp);
文件关闭后,它的文件结构体被释放
C程序
文件名
文件使用 方式
操作系统
文件类型指针
磁盘

C语言文件操作基本方法

C语言文件操作基本方法

C语言文件操作基本方法C语言是一种广泛应用的编程语言,它可以通过文件操作来读取和写入文件。

文件操作是C语言中非常重要的功能之一,它可以让我们实现数据的永久性存储和读取。

本文将介绍C语言中常用的文件操作基本方法。

1. 打开文件在C语言中,我们可以使用fopen()函数来打开文件。

该函数需要两个参数,第一个参数是文件名,可以是绝对路径或相对路径,第二个参数是打开文件的模式。

常见的文件打开模式有以下几种:- "r":只读方式打开文件,如果文件不存在则打开失败。

- "w":写入方式打开文件,在打开文件之前会将文件内容清空,如果文件不存在则自动创建。

- "a":追加方式打开文件,可以在已有文件的末尾添加内容,如果文件不存在则自动创建。

- "rb"、"wb"、"ab":以二进制方式打开文件。

示例代码:```cFILE *fp;fp = fopen("filename.txt", "r");```2. 关闭文件在文件操作完成后,需要使用fclose()函数来关闭文件。

这样可以释放系统资源并保证文件数据的完整性。

示例代码:```cfclose(fp);```3. 写入文件在打开文件后,我们可以使用fprintf()函数来向文件中写入数据。

该函数需要三个参数,第一个参数是已打开的文件指针,第二个参数是格式控制字符串,第三个参数是要写入的内容。

示例代码:```cFILE *fp;fp = fopen("filename.txt", "w");fprintf(fp, "Hello, C language!");fclose(fp);```4. 读取文件除了写入文件,我们还可以使用fscanf()函数来从文件中读取数据。

VB文件操作范文

VB文件操作范文

VB文件操作范文在VB中,可以使用FileSystemObject对象和File对象来进行文件操作。

FileSystemObject对象是VB中的文件系统对象,它可以用来处理文件夹和文件,包括创建、删除、重命名等操作。

File对象则是用来处理单个文件,包括读写文件内容等操作。

下面是VB文件操作常用的一些方法和属性:1. CreateTextFile方法:创建一个新的文本文件。

示例:`FileSystemObject.CreateTextFile("C:\test.txt")`2. DeleteFile方法:删除指定的文件。

示例:`FileSystemObject.DeleteFile("C:\test.txt")`3. MoveFile方法:移动指定的文件。

示例:`FileSystemObject.MoveFile("C:\test.txt","C:\newfolder\test.txt")`4. CopyFile方法:复制指定的文件。

示例:`FileSystemObject.CopyFile("C:\test.txt","C:\newfolder\test.txt")`5. GetFile方法:返回一个对指定文件的引用。

示例:`FileSystemObject.GetFile("C:\test.txt")`6. OpenTextFile方法:打开一个文本文件,并返回一个TextStream 对象,可以用来读取或写入文件内容。

示例:`FileSystemObject.OpenTextFile("C:\test.txt", 1)` 7. ReadAll方法:一次性读取整个文件的内容。

示例:`TextStreamObject.ReadAll(`8. WriteLine方法:向文件中写入一行文本。

文本文件的操作

文本文件的操作

文件的分类
对用户来说,常用到的文件有两大类,一类是程序文件 (program file),如C++的源程序文件(.cpp)、目标文件 (.obj)、可执行文件(.exe)等。一类是数据文件(data file),在程序运行时常常需要将一些数据(运行的最终结 果或中间数据)输出到磁盘上存放起来,以后需要时将再 从磁盘中输入到计算机内存。这种磁盘文件就是数据文件。 程序中的输入和输出的对象就是数据文件。
文件流类是以外存文件为输入输出流对象的数据 流。输出文件流是从内存流向外存文件的数据, 输入文件流是从外存文件流向内存的数据。 文件流类与文件流对象 注意:请区分文件流和文件的概念,不要误以为 文件流是若干个文件组成的流。文件流本身不是 文件,而只是以文件为输入输出对象的流。若要 对磁盘文件输入输出,就必须通过文件流来实现。
数据文件的分类
根据文件中数据的组织形式,可分为文本文件和二进制文 件。文本文件又称ASCII文件或字符文件,它的每一个字节 放一个ASCII代码,代表一个字符。二进制文件又称内部格 式文件或字节文件,是把内存中的数据按其在内存中的存
举例:数值数据用ASCII文件和二进制文件输出的对比。
文本文件和二进制文件输出的优劣比较
用文本码形式输出的数据是与字符一一对应的,一个字节代表一个 字符,可以直接在屏幕上显示或打印出来这种方式使用方便,比较 直观,便于阅读,便于对字符逐个进行输入输出。但一般占用存储 空间较多,而且要花费转换时间(二进制形式与文本码间的转换)。 用内部格式(二进制形式)输出数值,可以节省外存空间,而且不 需要转换时间,但一个字节并不对应一个字符,不能直观显示文件 中的内容。 二者的使用 如果在程序运行过程中些中间结果数据暂时保存在磁盘文件中,以 后又要输入到内存的,这时用二进制文件保存是最合适的。如果为 了能显示和打印以供阅读,则应按文本码形式输出。此时得到的是 文本文件,它的内容可以直接在屏幕上观看。

C++的File类文件操作

C++的File类文件操作

C++的File类⽂件操作语⾔⽂件系统称为流⽂件(Stream),正⽂流(正⽂⽂件),⼆进制流(⼆进制⽂件)缓冲与⾮缓冲⽂件顺序操作⽂件与随机操作⽂件顺序⽂件:读/写第K个数据块之前必须读/写第1⾄K-1个数据块;随机⽂件:可直接读/写第K个数据块;正⽂⽂件的操作⼀般是顺序⽂件;⼆进制⽂件的操作都是随机⽂件。

⼀、⽂件操作的⼀般过程定义⽂件指针 FILE *打开⽂件 fopen对⽂件进⾏读写< type="text/javascript"> < type="text/javascript" src="">⼆、系统已定义的与⽂件操作有关的数据结构全都在stdio.h中FILE 结构体FILE *fr,*fp,*fw;FILE* 指针作为⽂件句柄,是⽂件访问的唯⼀标识,它由fopen函数创建,fopen打开⽂件成功,则返回⼀个有效的FILE*指针,否则返回空指针NULL标准⽂件指针FILE *stdin,*stdout,*stderr,stdin 指键盘输⼊stdout 指显⽰器stderr 指出错输出设备,也指显⽰器这些变量已成功初始化,可直接使⽤.三、常⽤操作函数fopen格式:FILE *fopen(⽂件名字符串,打开⽅式串)例:FILE *fr; fr=fopen("c:\\user\\abc.txt","r");字符串操作:1)"r"或"rt":正⽂⽂件只读⽅式打开。

⽂件不存在,则打开失败(顺序读)"w"或"wt":正⽂⽂件只写⽅式打开。

若⽂件不存在,则建⽴⽂件;若⽂件存在,则删除⽂件内容,重建空⽂件(顺序写);(截取⽂件长度为0)2) "a"或"at":正⽂⽂件添加⽅式。

文件操作之File和Path

文件操作之File和Path

⽂件操作之File和PathJava7中⽂件IO发⽣了很⼤的变化,专门引⼊了很多新的类:import java.nio.file.DirectoryStream;import java.nio.file.FileSystem;import java.nio.file.FileSystems;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.nio.file.attribute.FileAttribute;import java.nio.file.attribute.PosixFilePermission;import java.nio.file.attribute.PosixFilePermissions;......等等,来取代原来的基于java.io.File的⽂件IO操作⽅式.1. Path就是取代File的A Path represents a path that is hierarchical and composed of a sequence of directory and file name elements separated by a special separator or delimiter.Path⽤于来表⽰⽂件路径和⽂件。

可以有多种⽅法来构造⼀个Path对象来表⽰⼀个⽂件路径,或者⼀个⽂件:1)⾸先是final类Paths的两个static⽅法,如何从⼀个路径字符串来构造Path对象:Path path = Paths.get("C:/", "Xmp");Path path2 = Paths.get("C:/Xmp");URI u = URI.create("file:///C:/Xmp/dd");Path p = Paths.get(u);2)FileSystems构造:Path path3 = FileSystems.getDefault().getPath("C:/", "access.log");3)File和Path之间的转换,File和URI之间的转换:File file = new File("C:/my.ini");Path p1 = file.toPath();p1.toFile();file.toURI();4)创建⼀个⽂件:Path target2 = Paths.get("C:\\mystuff.txt");// Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rw-rw-rw-");// FileAttribute<Set<PosixFilePermission>> attrs = PosixFilePermissions.asFileAttribute(perms);try {if(!Files.exists(target2))Files.createFile(target2);} catch (IOException e) {e.printStackTrace();}windows下不⽀持PosixFilePermission来指定rwx权限。

multisim仿真文件操作

multisim仿真文件操作

• 1.3.1 文件(File)基本操作•与Windows一样,用户可以用鼠标或快捷键打开multisim的File菜单。

使用鼠标可按以下步骤打开File 菜单:(1)将鼠标器指针指向主菜单File项;(2)单击鼠标左键,此时,屏幕上出现File子菜单。

multisim的大部分功能菜单也可以采用相应的快捷键进行快速操作。

• 1. 新建(File→New)—— Ctrl+N•用鼠标单击File→New选项或用Ctrl+N快捷键操作,打开一个无标题的电路窗口,可用它来创建一个新的电路。

•当启动multisim时,将自动打开一个新的无标题的电路窗口。

在关闭当前电路窗口前将提示是否保存它。

•用鼠标单击工具栏中的“新建”图标,等价于此项菜单操作。

• 2. 打开(File→Open)—— Ctrl+O•用鼠标单击Open选项或用Ctrl+O操作,打开一个标准的文件对话框,选择所需要的存放文件的驱动器/文件目录或磁盘/文件夹,从中选择电路文件名用鼠标单击,则该电路便显示在电路工作窗口中。

•用鼠标单击工具栏中的“打开”图标,等价于此项菜单操作。

• 3. 关闭(File→Close)•用鼠标单击File→Close选项,关闭电路工作区内的文件。

• 4. 保存(File→Save)—— Ctrl+S•用鼠标单击File→Save选项或用Ctrl+S操作,以电路文件形式保存当前电路工作窗口中的电路。

对新电路文件保存操作,会显示一个标准的保存文件对话框,选择保存当前电路文件的目录/驱动器或文件夹/磁盘,键入文件名,按下保存按钮即可将该电路文件保存。

•用鼠标单击工具栏中的“保存”图标,等价于此项菜单操作。

• 5. 文件换名保存(File→Save As)•用鼠标单击File→Save As选项,可将当前电路文件换名保存,新文件名及保存目录/驱动器均可选择。

原存放的电路文件仍保持不变。

• 6. 打印(File→Print)——Ctrl+P•用鼠标单击File→Print选项或用Ctrl+P操作,将当前电路工作窗口中的电路及测试仪器进行打印操作。

c语言_文件操作_FILE结构体解释_涉及对操作系统文件FCB操作的解释

c语言_文件操作_FILE结构体解释_涉及对操作系统文件FCB操作的解释

c语言_文件操作_FILE结构体解释_涉及对操作系统文件FCB操作的解释1. 文件和流的关系C将每个文件简单地作为顺序字节流(如下图)。

每个文件用文件结束符结束,或者在特定字节数的地方结束,这个特定的字节数可以存储在系统维护的管理数据结构中。

当打开文件时,就建立了和文件的关系。

在开始执行程序的时候,将自动打开3个文件和相关的流:标准输入流、标准输出流和标准错误。

流提供了文件和程序的通信通道。

例如,标准输入流使得程序可以从键盘读取数据,而标准输出流使得程序可以在屏幕上输出数据。

打开一个文件将返回指向FILE结构(在stdio.h中定义)的指针,它包含用于处理文件的信息,也就是说,这个结构包含文件描述符。

文件描述符是操作系统数组(打开文件列表的索引)。

每个数组元素包含一个文件控制块(FCB, File Co ntrol Block),操作系统用它来管理特定的文件。

标准输入、标准输出和标准错误是用文件指针stdin、stdout和stderr来处理的。

2. C语言文件操作的底层实现简介2.1 FILE结构体C语言的stdio.h头文件中,定义了用于文件操作的结构体FILE。

这样,我们通过fopen返回一个文件指针(指向FILE结构体的指针)来进行文件操作。

可以在stdio.h(位于visual studio安装目录下的include文件夹下)头文件中查看FILE结构体的定义,如下:TC2.0中:typedef struct{short level; /* fill/empty level of buffer */unsigned flags; /* File status flags */char fd; /* File descriptor */unsigned char hold; /* Ungetc char if no buffer */short bsize; /* Buffer size */unsigned char*buffer; /* Data transfer buffer */unsigned char*curp; /* Current active pointer */unsigned istemp; /* Temporary file indicator */short token; /* Used for validity checking */} FILE; /* This is the FILE object */VC6.0中:#ifndef _FILE_DEFINEDstruct_iobuf {char *_ptr; //文件输入的下一个位置int _cnt; //当前缓冲区的相对位置char *_base; //指基础位置(即是文件的其始位置)int _flag; //文件标志int _file; //文件的有效性验证int _charbuf; //检查缓冲区状况,如果无缓冲区则不读取int _bufsiz; //???这个什么意思char *_tmpfname; //临时文件名};typedef struct_iobuf FILE;#define_FILE_DEFINED#endif系统级打开文件表复制了文件控制块的信息等;进程级打开文件表保存了指向系统级文件表的指针及其他信息。

c语言文件操作

c语言文件操作

c语言文件操作一.文件的打开和关闭-fopen()函数和fclose()函数1.FILE为C语言提供的文件类型,它是一个结构体类型,用于存放文件的相关信息。

FILE*即为文件指针类型,通过该指针,我们可以对其相关联的文件进行一系列操作。

2.为了打开文件,文件名是不可缺少的。

如果要打开当前目录下的文件,可只用输入文件名,否则应该输入文件的绝对路径,如:c:\code\test.txt3.mode为打开文件的几种方式,常见的有"r"(只读),"w"(只写),"a"(文件末尾追加),"rb"(二进制件打开,只读),"wb"(二进制件打开,只读),"ab"(二进制件打开,追加)等。

用"r"方式打开文件,若文件不存在,则返回一个空指针表示错误。

若用"w"或"a"打开文件,则若文件不存在,都会创建一个新文件,即使文件存在,写入时也会把原有内容先进行覆盖4.在对文件进行相关操作后应该及时使用fclose函数进行关闭,以便及时释放资源5.若fopen函数打开失败,则返回空指针,且设置全局变量errno 来标识错误,因此打开文件后应该做必要的判断。

对于flose 函数,如果成功返回值为零。

如果失败,则返回EOF。

二.常见文件操作函数1.字符输入函数-fgetc()fgetc函数返回文件指针指向的字符,并使指针向下一个字符偏移。

若想用此函数打印文件全部内容,可用while((ch=fgetc(pf))!=EOF)循环来控制,这是因为当指针指向文件结尾,函数返回值为-12.字符输出函数-fputc()读取的最大字符数为(5-1)=4,这是因为字符串末尾会添加一个‘\0’作为字符串结束标志。

该函数返回值为相同的arr 参数。

如果到达文件末尾或者没有读取到任何字符,str 的内容保持不变,并返回一个空指针,因此同理可用while循环判断指针是否为NULL 实现打印全部内容。

C#文件操作常用相关类(Directory类、File类、Path类)

C#文件操作常用相关类(Directory类、File类、Path类)

C#⽂件操作常⽤相关类(Directory类、File类、Path类)1、⽂件操作常⽤相关类1)File //操作⽂件,静态类,对⽂件整体操作。

拷贝、删除、剪切等2)Directory //操作⽬录(⽂件夹),静态类3)DirectoryInfo //⽂件夹的⼀个“类”,⽤来描述⼀个⽂件夹对象(获取指定⽬录下的所有⽬录时返回⼀个DirectoryInfo数组)1.FileInfo//⽂件类,⽤来描述⼀个⽂件对象。

获取指定⽬录下的所有⽂件时,返回⼀个FileInfo数组2.Path//对⽂件或⽬录的路径进⾏操作(很⽅便)【字符串】3.Stream//⽂件流,抽象类4.FileStream//⽂件流,MemoryStream(内存流),NetworkStream(⽹络流)5.StreamReader//快速读取⽂本⽂件6.StreamWriter//快速写⼊⽂本⽂件2、Directory类(⽬录类)基本操作//删除此⽬录Directory.Delete(@"C:\Users\Administrator\Desktop\新建⽂件夹")//删除此⽬录,true表⽰要是此⽬录有⼦⽬录也删除,否则就抛出异常Directory.Delete(@"C:\Users\Administrator\Desktop\新建⽂件夹", false);//此⽬录是否存在boolb =Directory.Exists(@"C:\Users\Administrator\Desktop\新建⽂件夹");//根据路径返回此⽬录下的⼦⽬录string[] dirs1 = Directory.GetDirectories(@"C:\Users\Administrator\Desktop\新建⽂件夹");//第⼆个参数表⽰:搜索的范围,就是搜索的⽂件夹包含“基础”关键字string[]dirs2 =Directory.GetDirectories(@"C:\Users\Administrator\Desktop\新建⽂件夹","*.mp3");//搜索⽬录下的所有⽂件string[]files =Directory.GetFiles(@"C:\Users\Administrator\Desktop\新建⽂件夹");//第三个参数表⽰:指定搜索操作应包括所有⼦⽬录还是仅包括当前⽬录。

Files操作

Files操作

//java实现对文件夹的字节长度计算删除以及复制文件夹操作import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.List;import java.util.Scanner;public class Files {/** 绝对路径以/开始都能找到* 相对路径不以/kaitou 当前路径是在工程下面如果移至src下,则src\\my.txt,当前路径改变可能找不到* 写出程序不算有本事,写的比别人好也不算有本事,精益求精* 不要以为程序写出来能执行就好,我们要做的是让客户满意,满足他们挑出的千万个无厘头*/long len =0;private File f;public Files(){}public Files(File f){this.f = f;}//计算文件夹中文件的字节数public long getLength(File f){if(f.isFile()){return f.length();}else{File[] fil=f.listFiles();for(int i = 0 ;i<fil.length;i++){if(fil[i].isFile()){len += fil[i].length();}else{getLength(fil[i]);}}return len;}}//删除文件夹public void deleteFile(File f){if(f.isFile()){f.delete();}else{File[] fil=f.listFiles();for(int i = 0;i<fil.length-1;i++){deleteFile(fil[i]);}f.delete();}}//实现对指定文件的复制功能将f1的文件内容复制到文件f2中,且覆盖f2 //文件中的内容public void copyFiles(File f1,File f2){try{FileInputStream fis = new FileInputStream(f1);FileOutputStream fos = new FileOutputStream(f2);int data;//读取f1 文件while((data = fis.read())!=-1){fos.write(data);}fis.close();fos.close();}catch(FileNotFoundException e){e.printStackTrace();}catch(IOException e){e.printStackTrace();}}public static void main(String[] args) {Files ff = new Files();System.out.println(ff.getLength(new File("F:\\java1\\")));File java2 = new File("F:\\java2");ff.copyFiles(new File("F:\\java1\\java.txt"),new File("F:\\qiyue.txt"));ff.deleteFile(new File("F:\\java1\\"));}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

11.3 I/O类使用由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择。

因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程的一个基本能力。

本章IO类的使用就从读写文件开始。

11.3.1 文件操作文件(File)是最常见的数据源之一,在程序中经常需要将数据存储到文件中,例如图片文件、声音文件等数据文件,也经常需要根据需要从指定的文件中进行数据的读取。

当然,在实际使用时,文件都包含一个的格式,这个格式需要程序员根据需要进行设计,读取已有的文件时也需要熟悉对应的文件格式,才能把数据从文件中正确的读取出来。

文件的存储介质有很多,例如硬盘、光盘和U盘等,由于IO类设计时,从数据源转换为流对象的操作由API实现了,所以存储介质的不同对于程序员来说是透明的,和实际编写代码无关。

11.3.1.1 文件的概念文件是计算机中一种基本的数据存储形式,在实际存储数据时,如果对于数据的读写速度要求不是很高,存储的数据量不是很大时,使用文件作为一种持久数据存储的方式是比较好的选择。

存储在文件内部的数据和内存中的数据不同,存储在文件中的数据是一种“持久存储”,也就是当程序退出或计算机关机以后,数据还是存在的,而内存内部的数据在程序退出或计算机关机以后,数据就丢失了。

在不同的存储介质中,文件中的数据都是以一定的顺序依次存储起来,在实际读取时由硬件以及操作系统完成对于数据的控制,保证程序读取到的数据和存储的顺序保持一致。

每个文件以一个文件路径和文件名称进行表示,在需要访问该文件的时,只需要知道该文件的路径以及文件的全名即可。

在不同的操作系统环境下,文件路径的表示形式是不一样的,例如在Windows操作系统中一般的表示形式为C:\windows\system,而Unix上的表示形式为/user/my。

所以如果需要让Java程序能够在不同的操作系统下运行,书写文件路径时还需要比较注意。

11.3.1.1.1 绝对路径和相对路径绝对路径是指书写文件的完整路径,例如d:\java\Hello.java,该路径中包含文件的完整路径d:\java以及文件的全名Hello.java。

使用该路径可以唯一的找到一个文件,不会产生歧义。

但是使用绝对路径在表示文件时,受到的限制很大,且不能在不同的操作系统下运行,因为不同操作系统下绝对路径的表达形式存在不同。

相对路径是指书写文件的部分路径,例如\test\Hello.java,该路径中只包含文件的部分路径\test和文件的全名Hello.java,部分路径是指当前路径下的子路径,例如当前程序在d:\abc下运行,则该文件的完整路径就是d:\abc\test。

使用这种形式,可以更加通用的代表文件的位置,使得文件路径产生一定的灵活性。

在Eclipse项目中运行程序时,当前路径是项目的根目录,例如工作空间存储在d:\javaproject,当前项目名称是Test,则当前路径是:d:\javaproject\Test。

在控制台下面运行程序时,当前路径是class文件所在的目录,如果class文件包含包名,则以该class文件最顶层的包名作为当前路径。

另外在Java语言的代码内部书写文件路径时,需要注意大小写,大小写需要保持一致,路径中的文件夹名称区分大小写。

由于’\’是Java语言中的特殊字符,所以在代码内部书写文件路径时,例如代表“c:\test\java\Hello.java”时,需要书写成“c:\\test\\java\\Hello.java”或“c:/test/java/Hello.java”,这些都需要在代码中注意。

11.3.1.1.2 文件名称文件名称一般采用“文件名.后缀名”的形式进行命名,其中“文件名”用来表示文件的作用,而使用后缀名来表示文件的类型,这是当前操作系统中常见的一种形式,例如“readme.txt”文件,其中readme代表该文件时说明文件,而txt后缀名代表文件时文本文件类型,在操作系统中,还会自动将特定格式的后缀名和对应的程序关联,在双击该文件时使用特定的程序打开。

其实在文件名称只是一个标示,和实际存储的文件内容没有必然的联系,只是使用这种方式方便文件的使用。

在程序中需要存储数据时,如果自己设计了特定的文件格式,则可以自定义文件的后缀名,来标示自己的文件类型。

和文件路径一样,在Java代码内部书写文件名称时也区分大小写,文件名称的大小写必须和操作系统中的大小写保持一致。

另外,在书写文件名称时不要忘记书写文件的后缀名。

11.3.1.2 File类为了很方便的代表文件的概念,以及存储一些对于文件的基本操作,在java.io包中设计了一个专门的类——File类。

在File类中包含了大部分和文件操作的功能方法,该类的对象可以代表一个具体的文件或文件夹,所以以前曾有人建议将该类的类名修改成FilePath,因为该类也可以代表一个文件夹,更准确的说是可以代表一个文件路径。

下面介绍一下File类的基本使用。

1、File对象代表文件路径File类的对象可以代表一个具体的文件路径,在实际代表时,可以使用绝对路径也可以使用相对路径。

下面是创建的文件对象示例。

public File(String pathname)该示例中使用一个文件路径表示一个File类的对象,例如:File f1 = new File(“d:\\test\\1.txt”);File f2 = new File(“1.txt”);File f3 = new File(“e:\\abc”);这里的f1和f2对象分别代表一个文件,f1是绝对路径,而f2是相对路径,f3则代表一个文件夹,文件夹也是文件路径的一种。

public File(String parent, String child)也可以使用父路径和子路径结合,实现代表文件路径,例如:File f4 = new File(“d:\\test\\”,”1.txt”);这样代表的文件路径是:d:\test\1.txt。

2、File类常用方法File类中包含了很多获得文件或文件夹属性的方法,使用起来比较方便,下面将常见的方法介绍如下:a、createNewFile方法public boolean createNewFile() throws IOException该方法的作用是创建指定的文件。

该方法只能用于创建文件,不能用于创建文件夹,且文件路径中包含的文件夹必须存在。

b、delect方法public boolean delete()该方法的作用是删除当前文件或文件夹。

如果删除的是文件夹,则该文件夹必须为空。

如果需要删除一个非空的文件夹,则需要首先删除该文件夹内部的每个文件和文件夹,然后在可以删除,这个需要书写一定的逻辑代码实现。

c、exists方法public boolean exists()该方法的作用是判断当前文件或文件夹是否存在。

d、getAbsolutePath方法public String getAbsolutePath()该方法的作用是获得当前文件或文件夹的绝对路径。

例如c:\test\1.t 则返回c:\test\1.t。

e、getName方法public String getName()该方法的作用是获得当前文件或文件夹的名称。

例如c:\test\1.t,则返回1.t。

f、getParent方法public String getParent()该方法的作用是获得当前路径中的父路径。

例如c:\test\1.t则返回c:\test。

g、isDirectory方法public boolean isDirectory()该方法的作用是判断当前File对象是否是目录。

h、isFile方法public boolean isFile()该方法的作用是判断当前File对象是否是文件。

i、length方法public long length()该方法的作用是返回文件存储时占用的字节数。

该数值获得的是文件的实际大小,而不是文件在存储时占用的空间数。

j、list方法public String[] list()该方法的作用是返回当前文件夹下所有的文件名和文件夹名称。

说明,该名称不是绝对路径。

k、listFiles方法public File[] listFiles()该方法的作用是返回当前文件夹下所有的文件对象。

l、mkdir方法public boolean mkdir()该方法的作用是创建当前文件文件夹,而不创建该路径中的其它文件夹。

假设d盘下只有一个test文件夹,则创建d:\test\abc文件夹则成功,如果创建d:\a\b文件夹则创建失败,因为该路径中d:\a文件夹不存在。

如果创建成功则返回true,否则返回false。

m、mkdirs方法public boolean mkdirs()该方法的作用是创建文件夹,如果当前路径中包含的父目录不存在时,也会自动根据需要创建。

n、renameTo方法public boolean renameTo(File dest)该方法的作用是修改文件名。

在修改文件名时不能改变文件路径,如果该路径下已有该文件,则会修改失败。

o、setReadOnly方法public boolean setReadOnly()该方法的作用是设置当前文件或文件夹为只读。

3、File类基本示例以上各方法实现的测试代码如下:import java.io.File;/*** File类使用示例*/public class FileDemo {public static void main(String[] args) {//创建File对象File f1 = new File("d:\\test");File f2 = new File("1.txt");File f3 = new File("e:\\file.txt");File f4 = new File("d:\\","1.txt");//创建文件try{boolean b = f3.createNewFile();}catch(Exception e){e.printStackTrace();}//判断文件是否存在System.out.println(f4.exists());//获得文件的绝对路径System.out.println(f3.getAbsolutePath());//获得文件名System.out.println(f3.getName());//获得父路径System.out.println(f3.getParent());//判断是否是目录System.out.println(f1.isDirectory());//判断是否是文件System.out.println(f3.isFile());//获得文件长度System.out.println(f3.length());//获得当前文件夹下所有文件和文件夹名称String[] s = f1.list();for(int i = 0;i < s.length;i++){System.out.println(s[i]);}//获得文件对象File[] f5 = f1.listFiles();for(int i = 0;i < f5.length;i++){System.out.println(f5[i]);}//创建文件夹File f6 = new File("e:\\test\\abc");boolean b1 = f6.mkdir();System.out.println(b1);b1 = f6.mkdirs();System.out.println(b1);//修改文件名File f7 = new File("e:\\a.txt");boolean b2 = f3.renameTo(f7);System.out.println(b2);//设置文件为只读f7.setReadOnly();}}4、File类综合示例下面以两个示例演示File类的综合使用。

相关文档
最新文档