您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Android 開發中如何實現操作文件,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
Android 文件操作詳解
Android 的文件操作說白了就是Java的文件操作的處理。所以如果對Java的io文件操作比較熟悉的話,android的文件操作就是小菜一碟了。好了,話不多說,開始今天的正題吧。
先從一個小項目入門吧
首先是一個布局文件,這一點比較的簡單,那就直接上代碼吧。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="文件名稱" /> <EditText android:id="@+id/et_filename" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="file name" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="文件內容" /> <EditText android:id="@+id/et_filecontent" android:layout_width="match_parent" android:layout_height="wrap_content" android:lines="7" android:hint="file content" /> <Button android:id="@+id/btn_save" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="toSave" android:text="Save" /> <Button android:id="@+id/btn_get" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="getFile" android:text="Get" /> </LinearLayout>
然后是我們的主界面的Java文件了。繼續上代碼
package com.mark.storage; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.mark.service.FileService; public class MainActivity extends Activity { private EditText mEt_filename,mEt_filecontent; private Button mBtn_save; private void init(){ mEt_filecontent = (EditText) findViewById(R.id.et_filecontent); mEt_filename = (EditText) findViewById(R.id.et_filename); mBtn_save = (Button) findViewById(R.id.btn_save); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } /** * 保存數據到一個文件中 * @param view */ public void toSave(View view) { String fileName = mEt_filename.getText().toString(); String fileContent = mEt_filecontent.getText().toString(); FileService service = new FileService(getApplicationContext()); boolean isSucceed = service.save(fileName, fileContent); if(isSucceed){ Toast.makeText(getApplicationContext(), "恭喜您保存文件成功!", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(getApplicationContext(), "對不起,您保存文件失敗!", Toast.LENGTH_SHORT).show(); } } public void getFile(View view){ String fileName = mEt_filename.getText().toString(); FileService service = new FileService(getApplicationContext()); String fileContent = service.getFile(fileName); if(fileContent!=null || !fileContent.equals("")) { mEt_filecontent.setText(fileContent); }else{ Toast.makeText(getApplicationContext(), "對不起,讀取文件失敗!", Toast.LENGTH_SHORT).show(); } } }
是不是感覺里面的代碼有點奇怪呢?FileService是什么鬼?
其實FileService就是我們的業務類,主要的功能就是幫助我們實現了對文件的保存和讀取等操作。下面也貼出代碼
package com.mark.service; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import android.content.Context; public class FileService { //android自帶的可以快速獲得文件輸出流的一個類,注意參數不能是路徑,只能是文件名稱 private Context mContext; public FileService(Context context) { this.mContext = context; } /** * 保存文件的一個方法 * @param fileName * @param fileContent * @return */ public boolean save(String fileName, String fileContent) { try { //采用Context.MODE_PRIVATE模式的話,只允許本應用訪問此文件,并且熟覆蓋式的添加數據 FileOutputStream fos = mContext.openFileOutput(fileName, Context.MODE_PRIVATE); fos.write(fileContent.getBytes()); fos.close(); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 獲得之前保存過的文件的詳細的信息 * @param fileName * @return */ public String getFile(String fileName) { String fileContent = ""; try{ FileInputStream fis = mContext.openFileInput(fileName); byte[] buf = new byte[1024]; int len; ByteArrayOutputStream bais = new ByteArrayOutputStream(); while((len = fis.read(buf))!= -1){ bais.write(buf, 0, len); } byte[] data = bais.toByteArray(); fileContent = new String(data); fis.close(); return fileContent; }catch(Exception e){ e.printStackTrace(); return "對不起,讀取文件失敗!"; } } }
業務類的分析
現在開始進入正題咯。這個小項目的核心就在于這個業務類,原因如下:
看完上述內容,你們對Android 開發中如何實現操作文件有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。