国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uniapp安卓讀取或?qū)懭雝xt文件,創(chuàng)建文件或文件夾,獲取手機(jī)內(nèi)置存儲(chǔ)根路徑

這篇具有很好參考價(jià)值的文章主要介紹了uniapp安卓讀取或?qū)懭雝xt文件,創(chuàng)建文件或文件夾,獲取手機(jī)內(nèi)置存儲(chǔ)根路徑。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

使用應(yīng)開啟以下權(quán)限(讀取和寫入)
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 

原理:利用H5plusnative,引入java類來進(jìn)行處理。

File.js

/* 
	使用該類應(yīng)開啟以下權(quán)限(讀取和寫入)
	<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 */
/* 
	文件編碼
	ansi(ascii):英文標(biāo)準(zhǔn)碼0-127,包括控制符和其他英文字符編碼,這在后來一直統(tǒng)一沒再變過,當(dāng)然它只需要一個(gè)字節(jié)保存
	gb2312和gbk:這兩個(gè)是ancii碼加上漢字的擴(kuò)展,漢字多達(dá)10萬,在ancii編碼基礎(chǔ)上再加一個(gè)字節(jié)表示漢字,共可表示字符65535個(gè),包括了繁體字。因此一個(gè)中文字符包含兩個(gè)字節(jié)。eclipse中默認(rèn)編碼方式為gbk。在Windows中文系統(tǒng)中ANSI是默認(rèn)的編碼方式。對(duì)于英文文件是ASCII編碼,對(duì)于簡體中文文件是GB2312編碼。
	Unicode編碼:顧名思義,這是國際統(tǒng)一標(biāo)準(zhǔn)編碼,在這之前各國標(biāo)準(zhǔn)編碼不統(tǒng)一,微軟等公司需要為各國的計(jì)算機(jī)系統(tǒng)定制符合不同編碼標(biāo)準(zhǔn)的系統(tǒng),顯然,成本太高,并且互聯(lián)網(wǎng)的出現(xiàn)讓不同編碼標(biāo)準(zhǔn)的計(jì)算機(jī)交互變得困難,如:兩國的郵件系統(tǒng),會(huì)因?yàn)槭褂貌煌木幋a標(biāo)準(zhǔn)而導(dǎo)致接受方收到的郵件是亂碼。
	utf-8和utf-16編碼:UTF的意思是(UCS Transfer Format),顯然是隨著互聯(lián)網(wǎng)的出現(xiàn),需要解決Unicode在網(wǎng)絡(luò)上的傳輸問題。顧名思義,UTF8就是每次8個(gè)位傳輸數(shù)據(jù),而UTF16就是每次16個(gè)位,只不過為了傳輸時(shí)的可靠性,從UNICODE到UTF時(shí)并不是直接的對(duì)應(yīng),而是要過一些算法和規(guī)則來轉(zhuǎn)換。UTF-8就是在互聯(lián)網(wǎng)上使用最廣的一種unicode的實(shí)現(xiàn)方式。
*/

/**
 * 獲取手機(jī)內(nèi)置存儲(chǔ)的根路徑
 * @return {String}
 */
const root = function() {
	const environment = plus.android.importClass("android.os.Environment");
	return environment.getExternalStorageDirectory();
}

/**
 * 獲取指定文件夾下的所有文件和文件夾列表
 * @param {String} path 文件夾路徑
 * @return {Array<String>} 文件和文件夾列表
 */
const filelist = function(dir = '') {
	const File = plus.android.importClass("java.io.File");
	let list = [];
	let file = new File(dir);
	let tempList = file.listFiles();
	for (let i = 0; i < tempList.length; i++) {
		let fileName = tempList[i].getName();
		list.push(fileName);
	}
	return list;
}

/**
 * 創(chuàng)建文件
 * @return {boolean} flase=失?。ㄒ汛嬖?、操作失敗),true=成功
 */
const createNewFile = function(path = '') {
	const File = plus.android.importClass('java.io.File');
	let file = new File(path);
	if (!file.exists()) {
		return file.createNewFile();
	}
	return false;
}

/**
 * 創(chuàng)建文件夾
 * @return {boolean} flase=失?。ㄒ汛嬖凇⒉僮魇。瑃rue=成功
 */
const mkdirs = function(path = ''){
	const File = plus.android.importClass('java.io.File');
	let file = new File(path);
	if (!file.exists()) {
		return file.mkdirs();
	}
	return false;
}

/**
 * 讀取文件
 * @param {String} path 文件路徑
 * @param {String} charset 編碼
 * @return {Array<String>} 內(nèi)容列表(按行讀?。?文件不存在或異常則返回false
 */
const readTxt = function(path = '', charset = 'utf-8') {
	const File = plus.android.importClass('java.io.File');
	const InputStreamReader = plus.android.importClass('java.io.InputStreamReader');
	const BufferedReader = plus.android.importClass('java.io.BufferedReader');
	const FileInputStream = plus.android.importClass('java.io.FileInputStream');
	let file = new File(path);
	let inputStreamReader = null;
	let bufferedReader = null;
	let list = [];
	try {
		if (!file.exists()) {
			return false;
		}
		inputStreamReader = new InputStreamReader(new FileInputStream(file), charset);
		bufferedReader = new BufferedReader(inputStreamReader);
		let line = '';
		while (null != (line = bufferedReader.readLine())) {
			list.push(line);
		}
		bufferedReader.close();
		inputStreamReader.close();
	} catch (e) {
		if (null != bufferedReader) {
			bufferedReader.close();
		}
		if (null != inputStreamReader) {
			inputStreamReader.close();
		}
		return false;
	}
	return list;
}

/**
 * 寫入文件內(nèi)容
 * @param {String} path 文件路徑
 * @param {String} content 內(nèi)容
 * @param {boolean} append 內(nèi)容寫入類型,false=不追加(覆蓋原有內(nèi)容),true=追加(從內(nèi)容尾部寫入)
 * @param {String} charset 編碼
 * @return {boolean} true=成功,false=失敗
 */
const writeTxt = function(path = '', content = '', append = false, charset = 'utf-8') {
	const File = plus.android.importClass('java.io.File');
	const FileOutputStream = plus.android.importClass('java.io.FileOutputStream');
	const OutputStreamWriter = plus.android.importClass('java.io.OutputStreamWriter');

	let outputStreamWriter;
	let file = new File(path);
	try {
		//不存在則創(chuàng)建新的文件
		if (!file.exists()) {
			file.createNewFile();
		}
		outputStreamWriter = new OutputStreamWriter(new FileOutputStream(path, append), charset);
		outputStreamWriter.write(content);
		outputStreamWriter.close();
	} catch (e) {
		if (null != outputStreamWriter) {
			outputStreamWriter.close();
		}
		return false;
	}
	return true;
}

/**
 * 判斷文件是否存在
 * @param path 文件路徑
 * @return true=存在 false=不存在
 */
const isFileExist = function(path = ''){
	const File = plus.android.importClass('java.io.File');
	return new File(path).exists()
}

/**
 * 刪除文件
 * @param {String} path
 */
const deleteFile = function(path = ''){
	const File = plus.android.importClass('java.io.File');
	let file = new File(path);
	if (file.exists()) {
		return file.delete();
	}
	return false  
} 


export default {
	root,
	filelist,
	createNewFile,
	mkdirs,
	readTxt,
	writeTxt,
	isFileExist,
	deleteFile
}

uniapp開發(fā)記錄文章來源地址http://www.zghlxwxcb.cn/news/detail-672816.html

到了這里,關(guān)于uniapp安卓讀取或?qū)懭雝xt文件,創(chuàng)建文件或文件夾,獲取手機(jī)內(nèi)置存儲(chǔ)根路徑的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • uniapp安卓本地寫入讀取文件

    在需要使用的地方引入該文件。

    2024年02月12日
    瀏覽(24)
  • node使用fs模塊(四)—— 文件夾的使用(創(chuàng)建、讀取、刪除)

    node使用fs模塊(四)—— 文件夾的使用(創(chuàng)建、讀取、刪除)

    創(chuàng)建、讀取、刪除都有同步方法,方法后面加上sync即可。不過多解釋了。 參數(shù)1: path——讀取的文件路徑( 必填 ) 參數(shù)2: option——讀取的文件配置(可選) recursive 是否遞歸創(chuàng)建,默認(rèn)為false 參數(shù)3: callback——讀取回調(diào)函數(shù)( 必填 ) 參數(shù)1: path——讀取的文件路徑(

    2024年02月06日
    瀏覽(34)
  • Node.js 文件寫入及文件夾交互操作

    目錄 1、文件寫入 1.1 同步寫入文件 1.2 將內(nèi)容追加到文件 2、文件夾交互 2.1 檢查文件夾是否存在 2.2 創(chuàng)建新文件夾 2.3 讀取目錄內(nèi)容 2.4 重命名文件夾 2.5 刪除文件夾 在Node.js中寫入文件最簡單的方法是使用fs.writeFile()API。 您可以使用同步版本fs.writeFileSync(): 您還可以使

    2024年02月06日
    瀏覽(23)
  • Unity 獲取文件夾引用并讀取文件夾路徑

    編輯器中的文件夾屬于DefaultAssets類型的資源 EditorGUILayout.ObjectField 可以獲取對(duì)象的引用 AssetDatabase.GetAssetPath可通過對(duì)象的實(shí)例id獲取資源路徑 DirectoryInfo 可獲取目錄內(nèi)文件信息 Path.GetFileNameWithoutExtension 可獲取無后綴的文件名 彈出窗口 選擇文件夾 打印文件夾內(nèi)文件名 點(diǎn)擊文件

    2024年04月27日
    瀏覽(99)
  • C++對(duì)txt文件的寫入讀取操作

    C++對(duì)txt文件的寫入讀取操作

    摘自c++中文網(wǎng) ifstream 是輸入文件流(就是通過它定義的對(duì)象獲取文件中的內(nèi)容) ofstream 是輸出文件流(將內(nèi)容寫入文件) 注意 :要使用輸入輸出文件流要包含頭文件 #includefstream 首先要用 ofstream 定義一個(gè)輸入對(duì)象 ofstream outf; 這里的outf可以自定義 接著用 outf.open(文件路徑) 打

    2024年02月13日
    瀏覽(32)
  • python讀取文件夾下的文件以及子文件夾中文件

    os.listdir() 讀取目標(biāo)文件夾下的文件名和子文件夾名,不會(huì)遞歸讀取子文件夾下 方法一: root, dirs, files = os.walk() 遞歸讀取文件夾和 子文件夾下所有文件 。方法二:也可以用os.listdir(),判斷是文件夾再os.listdir()自己寫一個(gè)遞歸程序 示例

    2024年02月16日
    瀏覽(90)
  • Unity3D操作數(shù)據(jù)之Txt文檔操作(創(chuàng)建、讀取、寫入、修改)

    Unity3D操作數(shù)據(jù)之Txt文檔操作(創(chuàng)建、讀取、寫入、修改)

    Unity3D操作數(shù)據(jù)之Txt文檔操作(創(chuàng)建、讀取、寫入、修改) 其實(shí)讀取Txt文檔非常簡單、也不需要導(dǎo)入 插件 ,僅需引入相應(yīng)的 命名空間 即可。 命名空間: using System.IO 要注意的一點(diǎn)是,文檔格式設(shè)置為UTF-8,不然中文可能顯示不太正確。 使用寫入語句會(huì)自動(dòng)創(chuàng)建對(duì)應(yīng)的文檔 使用

    2024年02月02日
    瀏覽(64)
  • python讀取txt文件內(nèi)容,寫入csv文件中去。

    txt文件中的內(nèi)容大概是這樣的: 2.在圖3中,當(dāng)開關(guān)斷開時(shí),R1、R2_______(串聯(lián)/并聯(lián)),當(dāng)開關(guān)閉合時(shí), 被短路。開關(guān)由斷開轉(zhuǎn)為閉合時(shí),總電阻 ,總電流_______,通過R2的電流_______(變大/變小/不變)。 3.如圖3,當(dāng)開關(guān)閉合時(shí),R2兩端電壓為3V,若R2=10Ω,則電流為_______。斷開

    2023年04月08日
    瀏覽(96)
  • python 讀取文件夾下子文件夾下的csv數(shù)據(jù)表

    可以使用 Python 中的? os ?和? csv ?模塊來讀取文件夾下的文件夾的 csv 數(shù)據(jù)。具體的步驟如下: 導(dǎo)入? os ?和? csv ?模塊。 使用? os ?模塊的? listdir ?函數(shù)列舉出目標(biāo)文件夾下的所有子文件夾的名稱。 對(duì)于每個(gè)子文件夾,列舉出其中的所有 .csv 文件的名稱,并逐一讀取 csv

    2024年02月11日
    瀏覽(91)
  • 安卓的工程目錄文件夾簡單介紹

    安卓的工程目錄文件夾簡單介紹

    當(dāng)創(chuàng)建了一個(gè)安卓工程之后,系統(tǒng)會(huì)生成很多文件夾,那么這些文件夾都存放的是什么東西呢? src:存放java代碼,有包,有文件。相當(dāng)于普通java程序的src文件夾。 gen:存放自動(dòng)生成的文件。R.java存放的是程序的頁面、按鍵、文本等的id。 Android 4.4和Android Private Libaries:安卓

    2024年02月05日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包