-1
我有一段代碼讀取文件,但文件很小,並將它們分成較小的文件。我想讓這段代碼讀取大小爲32 GB或更大的文件,並支持不同類型的數據類型文件,希望尋找答案以幫助?如何使用C分割大文件32 GB或更多?
#include <stdio.h>
int main(){
FILE *ptr_readfile;
FILE *ptr_writefile;
char line [128]; /* or some other suitable maximum line size */
char fileoutputname[15];
int filecounter=1, linecounter=1;
ptr_readfile = fopen("editing for the java lab 2.txt","r");
if (!ptr_readfile)
return 1;
sprintf(fileoutputname, "file_part%d", filecounter);
ptr_writefile = fopen(fileoutputname, "w");
while (fgets(line, sizeof line, ptr_readfile)!=NULL) {
if (linecounter == 5) {
fclose(ptr_writefile);
linecounter = 1;
filecounter++;
sprintf(fileoutputname, "file_part%d", filecounter);
ptr_writefile = fopen(fileoutputname, "w");
if (!ptr_writefile)
return 1;
}
fprintf(ptr_writefile,"%s\n", line);
linecounter++;
}
fclose(ptr_readfile);
return 0;
}
C不關心文件類型。它讀取和寫入二進制文件。 – ForceBru
僅供參考:如果你在Linux/BSD/Cygwin上,已經有一個分割命令可用 –
我注意到你的第一件事對於'char fileoutputname [15];'來說是不必要的。讓它成爲'80'。 –