jni中對檔案的操作是很方便的,也是比較常用,主要使用到fopen以及fputc、fgetc等
//獲取sdcard路徑
private static final string sd_card_path= environment.getexternalstoragedirectory().getabsolutepath();
本地函式宣告:
public class fileutils
}
上面兩個函式,分別負責檔案的拆分與合併,diff函式的第乙個引數表示原始檔路徑,第二個引數表示拆分檔案的路徑,第三個引數表示拆分檔案的個數,patch合併函式類似。下面在c中實現兩個native函式。
extern "c"
jniexport void jnicall native_diff(jnienv *env, jclass type,
jstring path_, jstring pattern_path_,
jint file_num)
//獲取被拆分檔案的大小
int file_size=get_file_size(path);
if(file_size==0)
logd("file size is %d",file_size);
file* fpr=fopen(path,"rb"); //以讀的方式開啟 開啟 原檔案
/** 判斷檔案是否能被file_num 整除
* 能整除就平分
* 不能整除就先平分file_num-1
* */
if (file_size% file_num==0)
extern "c"
jniexport void jnicall native_patch(jnienv *env, jclass type,
jstring merge_path, jstring pattern_path_,
jint file_num)
file * fpw=fopen(path,"wb"); //在這個檔案裡邊寫資料
for (int i = 0; i < file_num; i++)
上面是檔案合併的實現,別忘記指標的釋放。 pcap檔案解析(三) 拆分SCTP包
這一章,我們將了解sctp資料報結構,並簡要介紹sctp協議,最後將帶有多個chunk的sctp包拆分問單個sctp資料報。資料報頭 eth資訊 ip頭sctp頭 sctp chunk 1 sctp chunk n 其中資料報頭和ip頭已經在前面做過介紹了,這裡先簡單介紹一下eth資訊。cpp vi...
檔案基礎 三)
檔案內指標移動是以位元組位單位的,唯獨t模式下的read讀取的內容個數是以字元為單位的 f.read 3 rt讀 指標指向開頭 讀取漢字 with open r txt mode rt encoding utf 8 as f res f.read 3 從頭開始讀讀三個字元 print res rb讀...
Linux基礎(三)檔案許可權
chown 擁有者 檔案 目錄 r 遞迴修改 chgrp 擁有者 檔案 目錄 r 遞迴修改 1.3.1 加減法 u g o 例 chmod u rwx,g rwx 檔案 目錄 1.3.2 數字法 數字法 r 4,w 2,x 1。例 chmod 777 檔案 目錄 rwx 7,rw 6,r 4,r x...