標籤:
1:Android開發中,離不開對檔案的操作,因為檔案可以儲存大量資料,掌握相關技術可以為開發帶來許多便利,一下便是我們的應用在手機或者模擬器上的內部儲存位置。
2:通過一個簡單的程式實現對android應用的內部檔案的讀取操作,頁面如下:
3:範例程式碼如下:
package cativity.cyq.readwriteintemaldata;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingException;public class MainActivity extends ActionBarActivity { private final String FILE_NAME = "text.txt"; private Button writrBTN; private Button readBTN; private EditText writeEdit; private TextView showTEXT; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // final File fileName=new File(FILE_NAME); writrBTN = (Button) findViewById(R.id.write_btn); readBTN = (Button) findViewById(R.id.read_btn); writeEdit = (EditText) findViewById(R.id.write_edit); showTEXT = (TextView) findViewById(R.id.show_text); writrBTN.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { /*調用openFileOutput()方法,如果檔案存在則只用該檔案,不存在,則建立該檔案。 MODE_APPEND表示在文本的末尾追加資料,不覆蓋原有的資料* Context.MODE_PRIVATE:為預設操作模式,代表該檔案是私人資料,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原檔案的內容 Context.MODE_APPEND:模式會檢查檔案是否存在,存在就往檔案追加內容,否則就建立新檔案。 MODE_WORLD_READABLE:表示當前檔案可以被其他應用讀取; MODE_WORLD_WRITEABLE:表示當前檔案可以被其他應用寫入。*/ FileOutputStream fos = openFileOutput(FILE_NAME, MODE_APPEND); OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8"); osw.write(writeEdit.getText().toString()); //osw.write("hello Wrold !"); osw.flush(); fos.flush(); osw.close(); fos.close(); Toast.makeText(MainActivity.this, "寫入成功", Toast.LENGTH_SHORT).show(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }); readBTN.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { FileInputStream fps = openFileInput(FILE_NAME); InputStreamReader isr = new InputStreamReader(fps, "UTF-8"); BufferedReader br = new BufferedReader(isr); StringBuilder sBuilder = new StringBuilder(); String line = ""; while ((line = br.readLine()) != null) { sBuilder.append(line); } showTEXT.setText(sBuilder.toString()); Toast.makeText(MainActivity.this, "讀取成功", Toast.LENGTH_SHORT).show(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }); }}
Android內部隱藏檔之資料讀取