標籤:android style blog http java color
預設本工程建立的檔案本工程對其有讀寫權限。
我們可以通過context.openFileOutput("檔案名稱", 模式);
我們可以建立私人, 共有, 唯讀, 唯寫檔案, 預設的文私人檔案。
如果別的Android工程訪問本工程的檔案的話就會受限制, android的核心是linux, 所以他的檔案管理和linux中的檔案時一樣的。
建立檔案代碼:
/** * 建立各種檔案 * @throws IOException * */ @SuppressLint({ "WorldWriteableFiles", "WorldReadableFiles" }) @SuppressWarnings("resource") private void createFile() throws IOException { Log.i(TAG, "開始建立檔案"); FileOutputStream fos; //建立私人檔案 fos = this.openFileOutput("private.txt", Context.MODE_PRIVATE); fos.write("private".getBytes()); fos.close(); //建立公有檔案 fos = this.openFileOutput("public.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); fos.write("public".getBytes()); fos.close(); //建立預設檔案 File file = new File(this.getFilesDir(), "default.txt"); fos = new FileOutputStream(file); fos.write("default".getBytes()); fos.close(); //建立唯讀檔案 fos = this.openFileOutput("readable.txt", Context.MODE_WORLD_READABLE); fos.write("readable".getBytes()); fos.close(); //建立唯寫檔案 fos = this.openFileOutput("writeable.txt", Context.MODE_WORLD_WRITEABLE); fos.write("writeable".getBytes()); fos.close(); Toast.makeText(this, "檔案建立成功", Toast.LENGTH_LONG).show(); Log.i(TAG, "建立檔案完成"); }View Code
othera Android工程訪問 filespower工程所建立的檔案
package com.example.other;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import android.annotation.SuppressLint;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends ActionBarActivity implements OnClickListener{ private String TAG = "MainActivity"; /** 讀寫私人檔案 */ private Button btnWritePrivate, btnReadPrivate; /** 讀寫共有檔案 */ private Button btnWritePublic, btnReadPublic ; /** 讀寫預設檔案 */ private Button btnWriteDefalut, btnReadDefault; /** 讀寫唯讀檔案 */ private Button btnWriteReadable, btnReadReadable; /** 讀寫唯寫檔案 */ private Button btnWriteWriteable, btnReadWriteable; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //組件擷取 btnWritePrivate = (Button)findViewById(R.id.btn_writePrivate); btnReadPrivate = (Button)findViewById(R.id.btn_readPrivate); btnWritePublic = (Button)findViewById(R.id.btn_writePublic); btnReadPublic = (Button)findViewById(R.id.btn_readPublic); btnWriteDefalut = (Button)findViewById(R.id.btn_writeDefault); btnReadDefault = (Button)findViewById(R.id.btn_readDefault); btnWriteReadable = (Button)findViewById(R.id.btn_writeReadable); btnReadReadable = (Button)findViewById(R.id.btn_readReadable); btnWriteWriteable = (Button)findViewById(R.id.btn_writeWriteable); btnReadWriteable = (Button)findViewById(R.id.btn_readWriteable); //設定監聽事件 btnWritePrivate.setOnClickListener(this); btnReadPrivate.setOnClickListener(this); btnWritePublic.setOnClickListener(this); btnReadPublic.setOnClickListener(this); btnWriteDefalut.setOnClickListener(this); btnReadDefault.setOnClickListener(this); btnWriteReadable.setOnClickListener(this); btnReadReadable.setOnClickListener(this); btnWriteWriteable.setOnClickListener(this); btnReadWriteable.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_readPrivate: readFile("private.txt"); break; case R.id.btn_readPublic: readFile("public.txt"); break; case R.id.btn_readDefault: readFile("default.txt"); break; case R.id.btn_readReadable: readFile("readable.txt"); break; case R.id.btn_readWriteable: readFile("writeable.txt"); break; case R.id.btn_writePrivate: writeFile("private.txt"); break; case R.id.btn_writePublic: writeFile("public.txt"); break; case R.id.btn_writeDefault: writeFile("default.txt"); break; case R.id.btn_writeReadable: writeFile("readable.txt"); break; case R.id.btn_writeWriteable: writeFile("writeable.txt"); break; default: break; } } @SuppressLint("SdCardPath") public void readFile(String fileName) { Log.i(TAG, "讀檔案"+fileName); File file = new File("/data/data/com.example.filepower/files/"+fileName); try { @SuppressWarnings("resource") BufferedReader br = new BufferedReader(new FileReader(file)); String context = br.readLine(); Toast.makeText(this, context, Toast.LENGTH_SHORT).show(); } catch (Exception e) { Toast.makeText(this, "讀取失敗", Toast.LENGTH_SHORT).show(); } } @SuppressLint("SdCardPath") @SuppressWarnings("resource") public void writeFile(String fileName) { Log.i(TAG, "寫檔案"+fileName); File file = new File("/data/data/com.example.filepower/files/", fileName); try { FileOutputStream fos = new FileOutputStream(file); fos.write("xxx".getBytes()); } catch (Exception e) { Toast.makeText(this, "寫檔案失敗", Toast.LENGTH_SHORT).show(); } }}View Code
檔案講解: