文件

说明

文件模块函数主要是跟文件信息相关联
文件模块的对象前缀是file,例如 file.readFile()这样调用

file.exists(path)

文件或者文件夹是否存在

@param path 路径
@return 布尔型 true 代表成功,false代表失败

function main(){ var t=file.exists("/sdcard/testdir/"); toast(t); } main();

file.create(path)

创建一个文件或者文件夹

@param path 文件或者文件夹路径
@return 布尔型 true 代表创建成功

function main(){ var create=file.create("/sdcard/test.txt"); toast(create); } main();

file.mkdirs(path)

创建一个文件夹并返回是否创建成功。
如果文件所在文件夹不存在,则先创建他所在的一系列文件夹。如果文件已经存在,则直接返回true。

@param path 路径
@return 布尔型 true 代表成功,false代表失败

function main(){ var t=file.mkdirs("/sdcard/testdir/"); toast(t); } main();

file.deleteAllFile(path)

删除文件或者文件夹

@param path 文件或者文件夹路径

function main(){ file.deleteAllFile("data/test.txt"); } main();

file.readFile(path)

将文件读取为字符串

@param path 文件路径
@return 字符串

function main(){ var data = file.readFile("/sdcard/test.txt"); toast(data); } main();

file.listDir(path)

列出目录下的所有文件

@param path 路径
@return 路径字符串数组

function main(){ var data = file.listDir("/sdcard/"); for(var i = 0; i < data.length; i++) { logd("path "+data[i]); } } main();

file.writeFile(data,path)

将字符串存储到文件中

@param data 字符串 数据
@param path 文件路径

function main(){ var data="Test"; file.writeFile(data,"/sdcard/test.txt"); } main();

file.readAssets(path)

从APK的assets文件夹中读取数据为字符串

@param path assets文件夹中的文件路径,例如 data/a.txt
@return 字符串

function main(){ var data=file.readAssets("data/test.txt"); toast(data); } main();

file.appendLine(lineData,path)

写入一行到文件中,追加模式

@param lineData 行数据
@param path 文件或者文件路径
@return 布尔型 true代表成功 false代表失败

function main(){ var lineData="飞云编程学院"; var t=file.appendLine(lineData,"/sdcard/test.txt"); toast(t); } main();

file.readLine(path,lineNumber)

读取一行数据,如果行号不对,返回的是空

@param path 路径
@param lineNumber 行号
@return 字符串 返回一行字符串

function main(){ var t=file.readLine("/sdcard/test.txt",1); toast(t); } main();

file.deleteLine(path,line,contains)

删除文件某一行或者根据包含条件删除
运行环境: 无限制
兼容版本: Android 4.4 以上

@param path 文件路径
@param line 行数,如果是-1 代表这个条件不生效
@param contains 包含某个字符串就删除,如果为null代表这个条件不生效
@return {bool} true 成功 false 失败

function main(){ //删除包含 时间 字符串的行 let r = file.deleteLine("/sdcard/a.txt",-1,"时间"); logd("r "+r); //删除第3行 r = file.deleteLine("/sdcard/a.txt",3,null); logd("r "+r); } main();

file.readAllLines(path)

读取所有数据

@param path 路径
@return 字符串

function main(){ var t=file.readAllLines("/sdcard/test.txt"); toast(t); } main();

file.copy(src,dest)

复制文件

@param src 源文件路径
@param dest 目标文件路径
@return 布尔型 true 代表成功

function main(){ var t=file.copy("/sdcard/a.png","/sdcard/b.png"); toast(t); } main();

例子

追加文本内容到指定文件

let path = "/sdcard/test.txt" // logd(file.deleteAllFile(path)) if (!file.exists(path)) { logd(file.create(path)); } let utf8Content = '你好,飞云 \r\n' fileAppend(path, encodeURI(utf8Content)) //读取文件内容 logd(decodeURI(file.readFile(path))); /** * @description: 追加文本内容到指定文件,使用decodeURI()方式读取 * @param: path * @param: utf8Content {string} 使用encodeURI()转换后的字符串,不转换的话中文会变乱码 * @return: * @author feiyun * @date: 2021/1/5 10:55 下午 */ function fileAppend(path, utf8Content) { // java 文件操作追加内容 // https://blog.csdn.net/qq_27309053/article/details/91267980 importClass(java.io.FileWriter); importClass(java.io.IOException); importClass(java.io.RandomAccessFile); if (file.exists(path)) { try { // 打开一个随机访问文件流,按读写方式 let randomFile = new RandomAccessFile(path, "rw"); // 文件长度,字节数 let fileLength = randomFile.length(); // 将写文件指针移到文件尾。 randomFile.seek(fileLength); // JAVA中的char是16位的,一个char存储一个中文字符,直接用writeBytes方法转换会变为8位,直接导致高8位丢失。从而导致中文乱码。 randomFile.writeBytes(utf8Content); randomFile.close(); } catch (e) { loge(e); } } }