日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android10 读取和写入手机内部存储

發布時間:2023/12/20 Android 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android10 读取和写入手机内部存储 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先需要明確:對于高版本的Android系統,內部存儲和外部存儲的理解是和常識相悖的。外部存儲其實就是我們手機的內部存儲(你手機那32,64,128和256G);

其次:在Android10后,對權限的設置進一步改變了。因此,如果還是和低版本一樣申請權限,是不能操作內部存儲的。

第一,申請權限

舊版本的權限申請一般如下,當然這部分還是要

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"tools:ignore="ProtectedPermissions"></uses-permission><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

如果要真的可以操作內部存儲,還需要如下代碼:

android:requestLegacyExternalStorage="true"

位置在見如下示例:?

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"package="com.example.testandroid"><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"tools:ignore="ProtectedPermissions"></uses-permission><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><applicationandroid:requestLegacyExternalStorage="true"android:windowSoftInputMode="adjustUnspecified|stateHidden"android:allowBackup="true"android:icon="@mipmap/show"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:screenOrientation="portrait"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

第二,開始操作內部存儲

判斷內部存儲是否可讀寫:

//保存歷史記錄,判斷SDcard是否存在并且可讀寫if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {System.out.println("成功!"); }

判斷路徑是否存在,不存在則新建:

File Folder = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "data");if (!Folder.exists()){boolean mkdirs = Folder.mkdirs();if (!mkdirs) {Log.e("TAG", "文件夾創建失敗");} else {Log.e("TAG", "文件夾創建成功");}}

讀取txt文件:

String message = ""; String sdCardDir = Environment.getExternalStorageDirectory().getAbsolutePath(); File saveFile = new File(sdCardDir + "/data/", "history.txt"); try {InputStreamReader fileReader = new InputStreamReader(new FileInputStream(saveFile), "utf-8");BufferedReader fp = new BufferedReader(fileReader);String line = null;while ((line = fp.readLine()) != null) {message += line + "\n";}fp.close(); } catch (FileNotFoundException e) {e.printStackTrace(); } catch (IOException e) {e.printStackTrace(); }

寫入到txt文件:這里每次添加到txt的最開始位置。因此是覆蓋寫入,先讀取所有的文件存在message變量中,然后添加message到strview變量中覆蓋寫入txt

如果是在txt末尾添加,將FileOutputStream(saveFile,false),"UTF-8")設為FileOutputStream(saveFile,true),"UTF-8")

try {//outStream = new FileOutputStream(saveFile,true);//寫入數據BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(saveFile,false),"UTF-8"));//獲取當前時間Date date = new Date();SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年-MM月dd日-HH時mm分ss秒 E");String sim = dateFormat.format(date);String strview=sim+outputdata.getText().toString()+"\n"+message; // byte[] b=strview.getBytes(); //字符->字節==編碼writer.write(strview);writer.close();writer.flush(); } catch (FileNotFoundException e) {e.printStackTrace(); } catch (IOException e) {e.printStackTrace(); }

?

?

總結

以上是生活随笔為你收集整理的Android10 读取和写入手机内部存储的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。