fopen 取得 FILE*fgetc/fputc、fgets/fputs、fread/fwrite)fcloser rb r+ rb+ // 唯讀/讀寫,檔案需存在
w wb w+ wb+ // 建立/截斷,唯寫/讀寫
a ab a+ ab+ // 附加,唯寫/讀寫
// 讀取
FILE *fp = fopen(path, "r");
char buf[1024];
while (fgets(buf, sizeof(buf), fp)) printf("%s", buf);
fclose(fp);
// 寫入(覆蓋模式)
fp = fopen(path, "w");
fputs("Hello\nWorld\n", fp);
fclose(fp);
FILE *rfp = fopen(src, "rb");
FILE *wfp = fopen(dst, "wb");
int buf[1024];
size_t len;
while ((len = fread(buf, sizeof(int), 1024, rfp)) != 0) {
fwrite(buf, sizeof(int), len, wfp);
}
fclose(rfp); fclose(wfp);
原理:x ^ k ^ k = x。同一函數可雙向操作。
void xor_file(const char *in, const char *out, unsigned char key) {
FILE *fin = fopen(in, "rb");
FILE *fout = fopen(out, "wb");
int ch;
while ((ch = fgetc(fin)) != EOF) fputc(ch ^ key, fout);
fclose(fin); fclose(fout);
}
// 使用
xor_file("plain.txt", "enc.bin", 0xAA); // 加密
xor_file("enc.bin", "dec.txt", 0xAA); // 解密
掌握 fopen 模式、三層級讀寫 API、二進制流處理與錯誤檢查,即可構建健壯的檔案處理模組。XOR 範例展示位元運算在加密中的應用,為後續學習 JNI 奠基。