跳到主要内容

File 读写

判断​

isFile 路径path是否是文件​

参数名必选类型说明
path是string路径
logd(ll.file.isFile("/sdcard/文件.txt"));
返回值类型说明
true/falseboolen是否成功

isDir 路径path是否是文件夹​

参数名必选类型说明
path是string路径
logd(ll.file.isDir("/sdcard/"));
返回值类型说明
true/falseboolen是否成功

isEmptyDir 文件夹path是否为空文件夹​

参数名必选类型说明
path是string路径
logd(ll.file.isEmptyDir("/sdcard/"));
返回值类型说明
true/falseboolen是否成功

exists 路径path处的文件是否存在​

参数名必选类型说明
path是string路径
logd(ll.file.exists("/sdcard/文件.txt"));
返回值类型说明
true/falseboolen是否成功

创建​

create 创建一个文件或文件夹​

提示
  • 如果文件已经存在,则直接返回false
参数名必选类型说明
path是string路径
logd(ll.file.create("/sdcard/aaa/"));
logd(ll.file.create("/sdcard/aaa/文件.txt"));
返回值类型说明
true/falseboolen是否成功

createWithDirs 创建一个文件或文件夹​

提示
  • 如果文件所在文件夹不存在,则先创建他所在的一系列文件夹
  • 如果文件已经存在,则直接返回false
参数名必选类型说明
path是string路径
logd(ll.file.createWithDirs("/sdcard/aaaa/bbbb/文件.txt"));
返回值类型说明
true/falseboolen是否成功

createWithDirs 创建一个文件或文件夹​

参数名必选类型说明
path是string路径
logd(ll.file.createWithDirs("/sdcard/aaaa/bbbb/文件.txt"));
返回值类型说明
true/falseboolen是否成功

ensureDir 确保路径path所在的文件夹存在​

提示
  • 如果该路径所在文件夹不存在,则创建该文件夹
参数名必选类型说明
path是string路径
logd(ll.file.ensureDir("/sdcard/aaa/bbb/文件.txt"));
返回值类型说明
true/falseboolen是否成功

读取​

read 读取文本文件path的所有内容​

参数名必选类型说明
path是string路径
encoding否string字符编码,可选,默认为utf-8
logd(ll.file.read("/sdcard/文件.txt"));
logd(ll.file.read("/sdcard/文件.txt","utf-8"));
返回值类型说明
文件内容string文件内容

readBytes 读取文件path的所有内容并返回一个字节数组​

提示
  • 如果文件不存在,则抛出FileNotFoundException
  • 注意,该数组是Java的数组,不具有JavaScript数组的forEach, slice等函数
参数名必选类型说明
path是string路径
encoding否string字符编码,可选,默认为utf-8
//以16进制形式打印文件
let data = ll.file.readBytes("/sdcard/1.png");
let sb = new java.lang.StringBuilder();
for (let i = 0; i < data.length; i++) {
sb.append(data[i].toString(16));
}
logd(sb.toString());
返回值类型说明
字节数组byte[]字节数组

readBase64 读取文件path的所有内容并返回一个base64编码字符串​

参数名必选类型说明
path是string文件路径
logd(ll.file.readBase64("/sdcard/Pictures/1.zip"));
返回值类型说明
YWJjstingbase64编码字符串

写入​

write 把text写入到文件path中​

提示
  • 如果文件存在则覆盖,不存在则创建
参数名必选类型说明
path是string路径
text是string要写入的文本内容
encoding否string字符编码,可选,默认为utf-8
logd(ll.file.write("/sdcard/文件.txt","要写入的文本内容"));
logd(ll.file.write("/sdcard/文件.txt","要写入的文本内容","utf-8"));
返回值类型说明
true/falseboolen是否成功

writeBytes 把bytes写入到文件path中​

提示
  • 如果文件存在则覆盖,不存在则创建
参数名必选类型说明
path是string路径
bytes是byte[]字节数组,要写入的二进制数据
let bytes = ll.file.readBytes("/sdcard/1.png")
logd(ll.file.writeBytes("/sdcard/2.png",bytes));

返回值类型说明
true/falseboolen是否成功

writeBase64 把base64写入到文件path中​

提示
  • 如果文件存在则覆盖,不存在则创建
参数名必选类型说明
path是string路径
base64是string要写入的base64数据
let str = ll.file.readBase64("/sdcard/Pictures/1.zip")
ll.file.writeBase64("/sdcard/Pictures/2.zip",str)
返回值类型说明
无无无

追加写入​

append 把text追加到文件path的末尾​

提示
  • 如果文件不存在则创建
参数名必选类型说明
path是string路径
text是string要写入的文本内容
encoding否string字符编码,可选,默认为utf-8
ll.file.append("/sdcard/文件.txt","要写入的文本内容")
ll.file.append("/sdcard/文件.txt","要写入的文本内容","utf-8")
返回值类型说明
无无无

appendBytes 把bytes追加到文件path的末尾​

提示
  • 如果文件不存在则创建
参数名必选类型说明
path是string路径
bytes是byte[]字节数组,要写入的二进制数据
let bytes = ll.file.readBytes("/sdcard/1.png");
ll.file.appendBytes("/sdcard/2.png",bytes);
ll.file.appendBytes("/sdcard/2.png",bytes);
返回值类型说明
true/falseboolen是否成功

修改​

changeStartWith 修改以字符为起始的字符串中的相应文本​

参数名必选类型说明
path是string路径
startWord是string起始字符串
oldString是string要替换的字符串
newString是string替换成的字符串
separator否string分割符,默认\n 可填\r\n
//假设文件内容
//张三100元
//李四200元
//王五300元

//命令如下:
logd(ll.file.changeStartWith("/sdcard/文件1.txt","李四","200","1000"));
//或者
logd(ll.file.changeStartWith("/sdcard/文件1.txt","李四","200","1000","\r\n"));

//处理结果
//张三100元
//李四1000元
//王五300元
返回值类型说明
true/falseboolen是否成功

changeLine 修改指定行文本​

参数名必选类型说明
path是string路径
lines是int指定行数
content是string要替换的字符串
separator否string分割符 默认\n 可填\r\n
//正常写法
logd(ll.file.changeLine("/sdcard/文件1.txt",2,"abcd"));
//为了生成windows版本换行符
logd(ll.file.changeLine("/sdcard/文件1.txt",2,"abcd","\r\n"));
返回值类型说明
true/falseboolen是否成功

列举​

listDir 列出文件夹path下的满足条件的文件和文件夹的名称的数组​

提示
  • 列出文件夹path下的满足条件的文件和文件夹的名称的数组
  • 如果不加filter参数,则返回所有文件和文件夹
参数名必选类型说明
path是string路径
filter否function过滤匿名函数
//列出sdcard目录下所有文件和文件夹为:
let arr = ll.file.listDir("/sdcard/");
logd(arr);
for (let i = 0; i < arr.length; i++) {
logd(arr[i])
}

//列出脚本目录下所有js脚本文件为:
let dir = "/sdcard/脚本/";
let jsFiles = ll.file.listDir(dir, function (name) {
return name.endsWith(".js") && ll.file.isFile(ll.file.join(dir, name));
});
logd(jsFiles);
返回值类型说明
文件数组string[]文件数组

listFilesByModifiedTime 遍历指定路径下所有文件的文件名,并按修改时间排序​

参数名必选类型说明
path是string文件夹路径
mode否number模式
1:倒序,新的在最前
2:正序,新的在最后
//列出sdcard目录下所有文件
let arr = ll.file.listFilesByModifiedTime("/sdcard/");
logd(arr);
for (let i = 0; i < arr.length; i++) {
logd(arr[i])
}

//列出sdcard目录下所有文件,正序排列
let arr = ll.file.listFilesByModifiedTime("/sdcard/", 2);
logd(arr);
for (let i = 0; i < arr.length; i++) {
logd(arr[i])
}
返回值类型说明
文件数组string[]文件数组

文件/目录操作​

copy 复制文件​

参数名必选类型说明
fromPath是string要复制的原文件路径
toPath是string复制到的文件路径
ll.file.copy("/sdcard/文件1.txt","/sdcard/文件2.txt")
返回值类型说明
true/falseboolen是否成功

copyDir 复制文件夹​

参数名必选类型说明
fromPath是string源文件夹路径
toPath是string目标文件夹路径
ll.file.copyDir("/sdcard/1/","/sdcard/2/")
返回值类型说明
true/falseboolean是否成功

move 移动文件​

参数名必选类型说明
fromPath是string要移动的原文件路径
toPath是string移动到的文件路径
ll.file.move("/sdcard/文件1.txt","/sdcard/文件2.txt")
返回值类型说明
true/falseboolen是否成功

moveDir 移动文件夹​

参数名必选类型说明
fromPath是string源文件夹路径
toPath是string目标文件夹路径
ll.file.moveDir("/sdcard/1/","/sdcard/2/")
返回值类型说明
true/falseboolean是否成功

rename 重命名文件​

参数名必选类型说明
path是string要重命名的原文件路径
newName是string要重命名的新文件名
ll.file.rename("/sdcard/文件1.txt","文件2.txt")
返回值类型说明
true/falseboolen是否成功

renameWithoutExtension 重命名文件,不包含拓展名​

参数名必选类型说明
path是string要重命名的原文件路径
newName是string要重命名的新文件名
ll.file.renameWithoutExtension("/sdcard/文件1.txt","文件2")
返回值类型说明
true/falseboolen是否成功

remove 删除文件或空文件夹​

参数名必选类型说明
path是string路径
ll.file.remove("/sdcard/文件.txt")
返回值类型说明
true/falseboolen是否成功

removeDir 删除文件夹​

提示
  • 如果文件夹不为空,则删除该文件夹的所有内容再删除该文件夹
参数名必选类型说明
path是string路径
ll.file.removeDir("/sdcard/aaa/bbb/")
返回值类型说明
true/falseboolen是否成功

deleteAllEmptyDirs 删除所有空文件夹​

参数名必选类型说明
path是string路径
ll.file.deleteAllEmptyDirs("/sdcard/aaa/bbb/")
返回值类型说明
无无无

convert 文件编码转换​

参数名必选类型说明
fromFile是string源文件路径
fromEncoding是string源文件编码
toFile是string输出文件路径
toEncoding是string输出文件编码
ll.file.convert("/sdcard/1.txt", "utf-8", "/sdcard/2.txt", "gbk");
返回值类型说明
true/falseboolen是否成功

读取属性​

getName 获取文件的文件名​

参数名必选类型说明
path是string路径
logd(ll.file.getName("/sdcard/文件.txt"));
返回值类型说明
文件.txtstring文件名

getNameWithoutExtension 获取不含拓展名的文件名​

参数名必选类型说明
path是string路径
logd(ll.file.getNameWithoutExtension("/sdcard/文件1.txt"));

返回值类型说明
文件1string文件名不带扩展

getExtension 获取文件的拓展名​

参数名必选类型说明
path是string路径
logd(ll.file.getExtension("/sdcard/文件.txt"));
返回值类型说明
txtstring文件扩展名

getSdcardPath 获取SD卡路径​

提示
  • 所谓SD卡,即外部存储器
参数名必选类型说明
无无无无
logd(ll.file.getSdcardPath());
返回值类型说明
/sdcard/stringsd卡路径

getLineNumber 获取文件行数​

参数名必选类型说明
path是string路径
logd(ll.file.getLineNumber("/sdcard/文件.txt"));
返回值类型说明
13int文件行数

getFileSize 获取文件大小字节数(可格式化)​

参数名必选类型说明
path是string文件路径
isFormat否bool是否格式化
ll.file.getFileSize("/sdcard/Pictures/1.png")
//51284
ll.file.getFileSize("/sdcard/Pictures/1.png",true)
//50.08KB
返回值类型说明
51284/50.08KBint/string文件夹大小字节数/格式化

getFolderSize 获取文件夹大小字节数(可格式化)​

参数名必选类型说明
path是string路径
isFormat否boolean是否格式化
logd(ll.file.getFolderSize("/sdcard/Pictures"));
//154454410
logd(ll.file.getFolderSize("/sdcard/Pictures",true));
//147.30MB
返回值类型说明
文件夹大小字节数/格式化long/string文件夹大小字节数/格式化

getFormatSize 格式化字节单位​

参数名必选类型说明
size是long字节大小
let size = ll.file.getFolderSize("/sdcard/Pictures/")
logd(ll.file.getFormatSize(size));
返回值类型说明
147.30MBsting格式化字节单位

getLastModified 获取文件修改时间​

参数名必选类型说明
path是string文件路径
logd(ll.file.getLastModified("/sdcard/1.txt"));
返回值类型说明
2021-07-07 14:11:10string修改时间 yyyy-MM-dd HH:mm:ss,不存在返回 "0"

其他​

join 连接两个路径并返回​

参数名必选类型说明
parent是string父目录路径
child是string子路径
logd(ll.file.join("/sdcard/","文件.txt"));
返回值类型说明
/sdcard/文件.txtboolen完整路径

open原始接口​

open 打开一个文件​

提示
  • open(path[, mode = “r”, encoding = “utf-8”, bufferSize = 8192])
参数名必选类型说明
path是string路径
mode否string文件打开模式,包括:
“r”: 只读文本模式该模式下只能对文件执行文本读取操作
“w”: 只写文本模式该模式下只能对文件执行文本覆盖写入操作
“a”: 附加文本模式该模式下将会把写入的文本附加到文件末尾
“rw”: 随机读写文本模式该模式下将会把写入的文本附加到文件末尾
目前暂不支持二进制模式,随机读写模式
参数​
参数名必选类型说明
encoding否string字符编码
bufferSize否number文件读写的缓冲区大小
说明​
打开一个文件根据打开模式返回不同的文件对象包括:
“r”: 返回一个ReadableTextFile对象
“w”, “a”: 返回一个WritableTextFile对象

对于"w"模式,如果文件并不存在,则会创建一个,已存在则会清空该文件内容;其他模式 文件不存在会抛出FileNotFoundException
ReadableTextFile
可读文件对象

ReadableTextFile.read()
返回该文件剩余的所有内容的字符串

ReadableTextFile.read(maxCount)
maxCount {Number} 最大读取的字符数量
读取该文件接下来最长为maxCount的字符串并返回即使文件剩余内容不足maxCount也不会出错

ReadableTextFile.readline()
读取一行并返回(不包含换行符)

ReadableTextFile.readlines()
读取剩余的所有行,并返回它们按顺序组成的字符串数组

close()
关闭该文件

打开一个文件不再使用时务必关闭
PWritableTextFile
可写文件对象

PWritableTextFile.write(text)
text {string} 文本
把文本内容text写入到文件中

PWritableTextFile.writeline(line)
text {string} 文本
把文本line写入到文件中并写入一个换行符

PWritableTextFile.writelines(lines)
lines {Array} 字符串数组
把很多行写入到文件中…

PWritableTextFile.flush()
把缓冲区内容输出到文件中

PWritableTextFile.close()
关闭文件同时会被缓冲区内容输出到文件
示例 读取文本文件​
//文件路径
let path = "/sdcard/1.txt";
//打开文件
let f = ll.file.open(path);
//读取文件的所有内容
let text = f.read();
//打印到控制台
logd(text);
//关闭文件
f.close();

示例 读写文本文件​
//以写入模式打开SD卡根目录文件1.txt
let f = ll.file.open("/sdcard/1.txt", "w")
//写入aaaa
f.write("aaaa");
//写入bbbbb后换行
f.writeline("bbbbb");
//写入ccc与ddd两行
f.writelines(["ccc", "ddd"]);
//关闭文件
f.close();

//以附加模式打开文件
f = ll.file.open("/sdcard/1.txt", "a");
//附加一行"啦啦啦啦"
f.writeline("啦啦啦啦");
//附加一行"哈哈哈哈"
f.writeline("哈哈哈哈");
//附加两行ccc, ddd
f.writelines(["ccc", "ddd"]);
//输出缓冲区
f.flush();
//关闭文件
f.close();


//以读取模式打开文件
f = ll.file.open("/sdcard/test.txt", "r")
//读取一行并打印
logd(f.readline());
//读取剩余所有行并打印
for each(line in f.readlines()){
logd(line)
}
f.close()
返回值类型说明
文件对象object文件对象

close 关闭文件​

配合ll.file.open使用


压缩包/解压缩​

readZipInnerFilePathList 获取zip内部所有文件路径​

参数名必选类型说明
path是stringzip文件路径
let ret = ll.file.readZipInnerFilePathList("/sdcard/1.zip")
for (let i = 0; i < ret.length; i++) {
logd(ret[i])
}
返回值类型说明
文件路径数组array文件路径数组

getZipComment 获取zip注释内容​

参数名必选类型说明
path是stringzip文件路径
logd(ll.file.getZipComment("/sdcard/1.zip"));
返回值类型说明
1234string注释内容

unzip 解压zip,支持密码​

参数名必选类型说明
zipFile是stringzip文件路径
dest是string解压路径
string是string密码
ll.file.unzip("/sdcard/1.zip","/sdcard/2/")
ll.file.unzip("/sdcard/1.zip","/sdcard/2/","123")
返回值类型说明
truebool是否成功

getECInnerFileList 获取EC下指定源文件夹下文件列表​

参数名必选类型说明
filterPath否string指定源文件夹名,默认res
//默认获取res路径下文件名
let fileList = ll.file.getECInnerFileList()
for (let i = 0; i < fileList.length; i++) {
logd(fileList[i]);
}
//指定获取js路径下文件名
let fileList = ll.file.getECInnerFileList("js")
for (let i = 0; i < fileList.length; i++) {
logd(fileList[i]);
}
返回值类型说明
["1.png","2.png"]array文件列表

XML相关​

xmlFileToJson 读xml文件为json​

参数名必选类型说明
path是string文件路径
let ret = ll.file.xmlFileToJson("/sdcard/1.xml")
ret = JSON.parse(ret)
logd(ret.map.string.content);
返回值类型说明
jsonstringjson

xmlStrToJson xml字符串转json​

参数名必选类型说明
str是stringxml字符串
let ret = ll.file.xmlStrToJson("<xml?>xxxxxxxxxxxxxxxxx")
ret = JSON.parse(ret)
logd(ret.map.string.content);
返回值类型说明
jsonstringjson

jsonToXml json转xml字符串​

参数名必选类型说明
str是stringjson字符串
logd(ll.file.jsonToXml("{a:1}"));
返回值类型说明
<?xml version='1.0' xxxxxxxxxxxxxx>stringxml