<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          File 內(nèi)部存儲 使用詳解

          共 6542字,需瀏覽 14分鐘

           ·

          2020-11-14 22:43

          和你一起終身學習,這里是程序員Android

          經(jīng)典好文推薦,通過閱讀本文,您將收獲以下知識點:


          一、內(nèi)部存儲的保存路徑
          二、內(nèi)部存儲的(保存,讀?。┦褂梅椒?br style="box-sizing: border-box;">三、內(nèi)部存儲的Demo
          四、內(nèi)部存儲的其他方法

          Android?可以直接保存文件到內(nèi)部存儲,保存在內(nèi)部存儲的文件是應用的私有文件,其他應用無法訪問,當app被卸載時候,文件也會被刪除掉。內(nèi)部存儲經(jīng)常以文件的形式保存。

          一、內(nèi)部存儲的保存路徑

          內(nèi)部存儲保存路徑如下:
          /data/data/com.**包名/files/文件名

          二、內(nèi)部存儲的(保存,讀?。┦褂梅椒?/h1>

          1. 保存文件的方法

          文件保存的常用方法如下:

          • 1.使用文件名稱和操作模式調(diào)用?openFileOutput()。
            這將返回一個?FileOutputStream。

          • 2.使用?write()?寫入到文件。

          • 3.使用?close()?關(guān)閉流式傳輸。

              // 1.保存文件方法
          private void SaveFile() {
          String filename = etname.getText().toString().trim();
          String filecontent = etcontent.getText().toString().trim();
          if (TextUtils.isEmpty(filename) || TextUtils.isEmpty(filecontent)) {
          Toast.makeText(getApplicationContext(), "文件名不能為空",
          Toast.LENGTH_LONG).show();
          return;
          }
          // 打開一個用來讀寫的文件,該文件與當前上下文所在的包相關(guān),調(diào)用該方法不需要添加任何全選,
          // 保存在手機內(nèi)部存儲中
          try {
          // 打開輸出流,并創(chuàng)建文件
          FileOutputStream fos = openFileOutput(filename, MODE_PRIVATE);
          // 輸入的內(nèi)容保存到文件中
          fos.write(filecontent.getBytes());
          fos.close();
          } catch (IOException e) {
          e.printStackTrace();
          }
          Toast.makeText(getApplicationContext(), "保存成功", Toast.LENGTH_LONG)
          .show();
          etname.setText("");
          etcontent.setText("");

          }

          2. 讀取 File 內(nèi)容的方法

          讀取 File 內(nèi)容的方法如下:
          1.調(diào)用?openFileInput()并向其傳遞要讀取的文件名稱。這將返回一個?FileInputStream。
          2.使用read()?讀取文件字節(jié)。
          3.然后使用close()關(guān)閉流式傳輸。

              // 2.打開文件方法
          private void OpenFile() {
          String filename = etname.getText().toString().trim();
          if (TextUtils.isEmpty(filename)) {
          Toast.makeText(getApplicationContext(), "文件名不能為空",
          Toast.LENGTH_LONG).show();
          return;
          }
          try {
          // 打開文件得到一個只讀的輸入流,
          FileInputStream fis = openFileInput(filename);
          // 將文件內(nèi)容存放的byte數(shù)組中
          byte[] buffer = new byte[fis.available()];
          // 讀取數(shù)組中的內(nèi)容
          fis.read(buffer);
          fis.close();
          // 將數(shù)組內(nèi)容存放到字符串中,并顯示出來
          etcontent.setText(new String(buffer));
          } catch (Exception e) {
          e.printStackTrace();
          }

          }

          3.刪除文件的方法

          如需刪除文件,可以根據(jù)文件名刪除?deleteFile(filename);

              // 3.刪除文件方法
          private void DeleteFile() {
          String filename = etname.getText().toString().trim();
          if (TextUtils.isEmpty(filename)) {
          Toast.makeText(getApplicationContext(), "文件名不能為空",
          Toast.LENGTH_LONG).show();
          return;
          }
          // 刪除上下文中指定名稱的文件,
          boolean deletefile = deleteFile(filename);
          if (deletefile) {
          Toast.makeText(getApplicationContext(), "刪除成功", Toast.LENGTH_LONG)
          .show();

          }
          }

          三、內(nèi)部存儲的案例

          1.實現(xiàn)效果如下:

          實現(xiàn)文件的保存、讀取、刪除功能

          內(nèi)部存儲使用

          2. 實現(xiàn)代碼如下:

          public class FileInternalStorageMethods extends Activity implements
          OnClickListener {
          /*
          * 內(nèi)部存儲的方法FileOutputStream(filename, MODE_PRIVATE);
          * FileInputStream(filename); deleteFile(filename); 文件保存位置:
          * /data/data/包名/files/文件名 內(nèi)部存儲的特點:內(nèi)部存儲里的東西會隨著app的卸載而清掉
          *
          * *
          */


          private EditText etname, etcontent;
          private Button savebtn, openbtn, deletebtn;

          @Override
          protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_internal_methods);
          InitView();
          }

          private void InitView() {
          etname = (EditText) findViewById(R.id.editfilename);
          etcontent = (EditText) findViewById(R.id.edit_filecontext);
          savebtn = (Button) findViewById(R.id.savefile);
          openbtn = (Button) findViewById(R.id.openfile);
          deletebtn = (Button) findViewById(R.id.deletefile);

          savebtn.setOnClickListener(this);
          openbtn.setOnClickListener(this);
          deletebtn.setOnClickListener(this);

          }

          @Override
          public void onClick(View v) {
          switch (v.getId()) {
          case R.id.savefile:

          SaveFile();
          break;
          case R.id.openfile:

          OpenFile();
          break;
          case R.id.deletefile:

          DeleteFile();
          break;
          default:
          break;
          }

          }

          // 1.保存文件方法
          private void SaveFile() {
          String filename = etname.getText().toString().trim();
          String filecontent = etcontent.getText().toString().trim();
          if (TextUtils.isEmpty(filename) || TextUtils.isEmpty(filecontent)) {
          Toast.makeText(getApplicationContext(), "文件名不能為空",
          Toast.LENGTH_LONG).show();
          return;
          }
          // 打開一個用來讀寫的文件,該文件與當前上下文所在的包相關(guān),調(diào)用該方法不需要添加任何全選,
          // 保存在手機內(nèi)部存儲中
          try {
          // 打開輸出流,并創(chuàng)建文件
          FileOutputStream fos = openFileOutput(filename, MODE_PRIVATE);
          // 輸入的內(nèi)容保存到文件中
          fos.write(filecontent.getBytes());
          fos.close();
          } catch (IOException e) {
          e.printStackTrace();
          }
          Toast.makeText(getApplicationContext(), "保存成功", Toast.LENGTH_LONG)
          .show();
          etname.setText("");
          etcontent.setText("");

          }

          // 2.打開文件方法
          private void OpenFile() {
          String filename = etname.getText().toString().trim();
          if (TextUtils.isEmpty(filename)) {
          Toast.makeText(getApplicationContext(), "文件名不能為空",
          Toast.LENGTH_LONG).show();
          return;
          }
          try {
          // 打開文件得到一個只讀的輸入流,
          FileInputStream fis = openFileInput(filename);
          // 將文件內(nèi)容存放的byte數(shù)組中
          byte[] buffer = new byte[fis.available()];
          // 讀取數(shù)組中的內(nèi)容
          fis.read(buffer);
          fis.close();
          // 將數(shù)組內(nèi)容存放到字符串中,并顯示出來
          etcontent.setText(new String(buffer));
          } catch (Exception e) {
          e.printStackTrace();
          }

          }

          // 3.刪除文件方法
          private void DeleteFile() {
          String filename = etname.getText().toString().trim();
          if (TextUtils.isEmpty(filename)) {
          Toast.makeText(getApplicationContext(), "文件名不能為空",
          Toast.LENGTH_LONG).show();
          return;
          }
          // 刪除上下文中指定名稱的文件,
          boolean deletefile = deleteFile(filename);
          if (deletefile) {
          Toast.makeText(getApplicationContext(), "刪除成功", Toast.LENGTH_LONG)
          .show();

          }
          }

          }

          3. 實現(xiàn)布局 如下:


          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical" >


          <LinearLayout
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal" >


          <EditText
          android:id="@+id/editfilename"
          android:layout_width="0dp"
          android:layout_height="wrap_content"
          android:layout_gravity="center_vertical"
          android:layout_weight="1"
          android:background="@android:drawable/edit_text"
          android:hint="請輸入文件名"
          android:padding="5dp"
          android:textSize="20sp" />


          <Button
          android:id="@+id/savefile"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="center_vertical"
          android:layout_marginLeft="5dp"
          android:padding="5dp"
          android:text="保存"
          android:textSize="25sp" />


          <Button
          android:id="@+id/openfile"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="center_vertical"
          android:layout_marginLeft="5dp"
          android:padding="5dp"
          android:text="打開"
          android:textSize="25sp" />

          LinearLayout>

          <Button
          android:id="@+id/deletefile"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:gravity="center"
          android:padding="5dp"
          android:text="刪除文件"
          android:textSize="25sp" />


          <EditText
          android:id="@+id/edit_filecontext"
          android:layout_width="match_parent"
          android:layout_height="0dp"
          android:layout_weight="1"
          android:background="@android:drawable/edit_text"
          android:gravity="left"
          android:hint="請輸入文件內(nèi)容"
          android:padding="5dp"
          android:textSize="20sp" />


          LinearLayout>

          四、 內(nèi)部存儲的其他方法

          1. 獲取在其中存儲內(nèi)部文件的文件系統(tǒng)目錄的絕對路徑。

           getFilesDir()

          2. 在您的內(nèi)部存儲空間內(nèi)創(chuàng)建(或打開現(xiàn)有的)目錄。

           getDir()

          3. 返回您的應用當前保存的一系列文件。

           fileList()

          至此,本篇已結(jié)束。轉(zhuǎn)載網(wǎng)絡(luò)的文章,小編覺得很優(yōu)秀,歡迎點擊閱讀原文,支持原創(chuàng)作者,如有侵權(quán),懇請聯(lián)系小編刪除。同時感謝您的閱讀,期待您的關(guān)注。

          瀏覽 78
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  夜夜撸www | 尻屄视频| 在线观看成人毛片 | 国产永久性人人视频 | 黑人操亚洲比大片 |