首页 > 其他分享 >uniapp读取写入安卓文件

uniapp读取写入安卓文件

时间:2022-11-28 21:58:03浏览次数:37  
标签:uniapp const 读取 java 安卓 console txt log

uniapp读取安卓手机文件

functhion readJsonByFile(fileNamePath) {
	// 只能用于安卓 导入java类
	const File = plus.android.importClass('java.io.File')
	const BufferedReader = plus.android.importClass('java.io.BufferedReader')
	const FileReader = plus.android.importClass('java.io.FileReader')
	const FileWriter = plus.android.importClass('java.io.FileWriter')
	// 安卓11以下 /sdcard/自己的文件夹/1.txt
	// 安卓11 建议用 /storage/emulated/0/Download/自己的文件夹/1.txt
	// 读取txt文件 readFile ("/sdcard/修止符/配置.json")
	const readFile = (fileName) => {
		const readFr = new File(fileName)
		try {
			const reader = new BufferedReader(new FileReader(readFr))
			let txt
			let retxt = ''
			let flag = true
			while (flag) {
				txt = reader.readLine() // 读取文件
				if (txt == null) {
					flag = false
					break
				}
				retxt = retxt + txt
			}
			return retxt
		} catch (e) {
			console.log(e)
			return ''
		}
	}
	//const settingJsonPath = '/sdcard/wisdomApp/settingJson.txt'
	const json = readFile(fileNamePath)
	return json
}

uniapp写入安卓手机文件

function writeJsonToFile(json, fileNamePath) {
	// 只能用于安卓 导入java类
	const File = plus.android.importClass('java.io.File')
	const BufferedReader = plus.android.importClass('java.io.BufferedReader')
	const FileReader = plus.android.importClass('java.io.FileReader')
	const FileWriter = plus.android.importClass('java.io.FileWriter')
	// 安卓11以下 /sdcard/自己的文件夹/1.txt
	// 安卓11 建议用 /storage/emulated/0/Download/自己的文件夹/1.txt
	// 写文件 writeFile("/sdcard/修止符/配置.json",{"主键":"值"})
	const writeFile = (fileName, res) => {
		try {
			// 不加根目录创建文件(即用相对地址)的话directory.exists()这个判断一值都是false
			const n = fileName.lastIndexOf('/')
			if (n !== -1) {
				const fileDirs = fileName.substring(0, n)
				// console.log(fileDirs)
				const directory = new File(fileDirs)
				if (!directory.exists()) {
					const a = directory.mkdirs() // 不存在创建目录
					console.log(a,'不存在创建目录')
				}
			}
			const file = new File(fileName)
			if (!file.exists()) {
				file.createNewFile() // 创建文件
			}
			const fos = new FileWriter(fileName, false)
			fos.write(res)
			fos.close()
			return true
		} catch (e) {
			console.log(e,'错误')
			return false
		}
	}
	// const settingJsonPath = '/sdcard/wisdomApp/settingJson.txt'
	// 写入文件
	writeFile(fileNamePath, json)
	return true
}

uniapp读取目录下所有文件

function getDirList(fileNamePath){
	return new Promise((resolve,reject)=>{
		let arr = [];
		plus.io.resolveLocalFileSystemURL(fileNamePath,function(entry) {
			var directoryReader = entry.createReader();
			directoryReader.readEntries(
				function(entries){
					for (var i = 0; i < entries.length; i++) {
						// console.log("文件信息",entries[i].name);
						arr.push(entries[i].name);
					}
					console.log(arr);
					resolve(arr);
				},function (e) {
					console.log('访问目录失败');
					reject(e)
				});
		}, function (e) {
			console.log('访问指定目录失败');
			reject(e)
		});
	})
}

由于是异步读取,返回有延迟所以写一个Promise
调用的时候使用链式调用

this.getDirList('/sdcard/Pictures').then(res=>{
	console.log(res);
	console.log(res[0]);
})

标签:uniapp,const,读取,java,安卓,console,txt,log
From: https://www.cnblogs.com/tn666/p/16933740.html

相关文章