Android Ndk 學習筆記(目錄)
1 讀檔案
void fileTest01(){
char * fileNameStr = "D:\\text1.txt";
FILE * file = fopen(fileNameStr,"r");
if (!file){
printf("檔案打開失敗 地址%s",fileNameStr);
exit(0); // 退出程式
}
// 定義快取區
char buffer[10];
// 1.緩沖區buffer, 2:長度10, 3:檔案指標變數
while (fgets(buffer, 10, file)) {
printf("%s\n", buffer);
}
// 關閉檔案
fclose(file);
}


2 寫檔案
void fileTest02(){
char * fileNameStr = "D:\\text2.txt";
FILE * file = fopen(fileNameStr,"w");
if (!file){
printf("檔案打開失敗 地址%s",fileNameStr);
exit(0); // 退出程式
}
fputs("this is a file",file);
fclose(file);
}

3 二進制檔案來復制 rb wb
void fileTest03(){
char * fileNameStr = "D:\\text1.txt"; //來源
char * fileNameStrCopy = "D:\\text3.txt"; //目標
FILE * file = fopen(fileNameStr,"rb");
FILE * fileCopy = fopen(fileNameStrCopy,"wb");
if (!file || !fileCopy) {
printf("檔案打開失敗 地址");
exit(0); // 退出程式
}
int buffer[512];
int len; // 每次讀取的長度
while ((len = fread(buffer, sizeof(int), 512 , file)) != 0) {
fwrite(buffer, sizeof(int), len, fileCopy);
}
// 關閉檔案
fclose(file);
fclose(fileCopy);
}
3.1 (len = fread(buffer, sizeof(int), 512 , file))

3.2 fwrite(buffer, sizeof(int), len, fileCopy);

5 // 獲取檔案大小
void fileTest04(){
char * fileNameStr = "D:\\text1.txt"; //來源
FILE * file = fopen(fileNameStr,"rb");
if (!file){
printf("檔案打開失敗 地址%s",fileNameStr);
exit(0); // 退出程式
}
// SEEK_SET(開頭) SEEK_CUR(當前) SEEK_END(結尾)
fseek(file, 0, SEEK_END);
// 走到這里之后:file有了更豐富的值,給你的file指標賦值,挪動的記錄資訊
// 讀取 剛剛給file賦值的記錄資訊
// 其實此函式目的是:計算偏移的位置,ftell 從 0 開始統計到當前(SEEK_END)
long file_size = ftell(file);
printf("%s檔案的位元組大小是:%ld\n", fileNameStr, file_size);
// 8 位元組 (8 位元組)
// 關閉檔案
fclose(file);
}
fseek(file, 0, SEEK_END);

6 long file_size = ftell(file);

7 檔案加密
void fileTest05(){
char * fileNameStr = "D:\\text1.txt"; //來源
char * fileNameStrEncode = "D:\\text4.txt"; //目標
FILE * file = fopen(fileNameStr,"rb");
FILE * fileEncode = fopen(fileNameStrEncode,"wb");
if (!file || !fileEncode) {
printf("檔案打開失敗 地址");
exit(0); // 退出程式
}
int c; // 接收讀取的值
// fgetc(檔案指標) 回傳值 EOF = end fo file
while ((c = fgetc(file)) != EOF) {
// 加密操作
fputc(c ^ 5, fileEncode ); // 寫入到 fileEncode D:\Temp\IMG_encode.jpg(加密后的圖片)
}
// 關閉檔案
fclose(file);
fclose(fileEncode);
}
8 檔案解密
void fileTest06(){
char * fileNameStr = "D:\\text4.txt"; //來源
char * fileNameStrDecode = "D:\\text5.txt"; //目標
FILE * file = fopen(fileNameStr,"rb");
FILE * fileDecode = fopen(fileNameStrDecode,"wb");
if (!file || !fileDecode) {
printf("檔案打開失敗 地址");
exit(0); // 退出程式
}
int c;
while ((c = fgetc(file)) != EOF) {
// 解密操作 1111 ^ 5 = 10;(還原)
fputc(c ^ 5, fileDecode);
}
fclose(file);
fclose(fileDecode);
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/290116.html
標籤:其他
