文件流:像水流一样把一个大的文件分成一段一段的流过去就叫文件流
你下载了一部非常高清又无码的电影,计算机处理文件,需要先加载到内存,然后再交给CPU执行,内存16G,不可能一次性加载到内存
一点一点流到内存,我先流1G,然后再流1G,慢慢流过去
网络视频的时候,进度条,就是所谓缓冲,就是缓冲文件流(流媒体)
r: 以只读的方式打开文件,如果文件存在,返回文件的指针,如果不存在返回NULL
w: 以只写的方式打开文件,覆盖原文件再返回文件指针,如果不存在则创建再返回文件指针
a: 以追加的方式打开文件,如果文件存在,则追加原来的文件内容,如果不存在则创建文件。不管存在不存在最终都会返回文件指针
r+:功能和r还是一样,只不过增加了写的功能 w+:功能和w还是一样,只不过增加了读的功能
a+:功能和a还是一样,只不过增加了读的功能
以下不能单独用,要跟上面的嵌套一起
t: 代表操作的是文本文件 (默认的) rt wt at rt+ wt+ at+
b: 代表操作的是二进制文件 rb wb ab rb+ wb+ ab+
FILE *fp = fopen("/Users/chenyong/Desktop/a.datd", "r");
if(fp != NULL){
while (1) {
因为不知道内容究竟有多少,所以死循环来读
char ch = fgetc(fp);
如果它读取出来的是EOF,那么就代表读取完毕
if(ch == EOF){
break;
}
printf("%c",ch);
}
//关闭文件
fclose(fp);
}
FILE *fp = fopen("/Users/chenyong/Desktop/a.datd", "w");
if(fp != NULL){
char str[] = "";
int len = (int)strlen(str);
for (int i=0; i<len; i++) {
fputc(str[i], fp);
}
fclose(fp);
}