NDK基礎三 JNI 檔案拆分

2021-08-19 08:08:21 字數 1150 閱讀 9711

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...