android 之数据存储(IO)
生活随笔
收集整理的這篇文章主要介紹了
android 之数据存储(IO)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
android 操作文件分為兩種,
? 第一種:直接寫到手機內存中,手機內存有限。
? 第二種:寫到手機的內存卡(SD)中,進行操作文件。
? 以下分為兩種情況的讀精心操作,一個簡單的demo.在此做一個記錄。
?代碼。
package com.hkrt.action;import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import java.io.RandomAccessFile;import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.os.Environment; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast;public class IOtestActivity extends Activity {public EditText edit;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);edit = (EditText)this.findViewById(R.id.inputEdit);Button read = (Button)this.findViewById(R.id.read);Button write = (Button)this.findViewById(R.id.write);write.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) { // write(edit.getText().toString());writeDB(edit.getText().toString());Toast.makeText(IOtestActivity.this, "寫入成功", 0).show(); }});read.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) { // String str= read();String str=readSD();if(str!=null){Toast.makeText(IOtestActivity.this, "獲取到的值:"+str, 0).show(); }}});}/**從手機內存中讀取*/private String read() {StringBuffer sb = null;try {FileInputStream fis = openFileInput("info");byte[] buff = new byte[8192];int hasread = 0;sb = new StringBuffer();while ((hasread = fis.read(buff)) > 0) {sb.append(new String(buff, 0, hasread));}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return sb.toString();}/**寫到手機內存中*/private void write(String content) {FileOutputStream fos = null;try {fos = openFileOutput("info", Context.MODE_APPEND);PrintStream ps = new PrintStream(fos);ps.print(content);} catch (FileNotFoundException e) {e.printStackTrace();} finally {if (fos != null) {try {fos.close();} catch (IOException e) {e.printStackTrace();}}}}/**從sd卡中取內容*/private String readSD(){FileInputStream fis=null;StringBuffer sb = new StringBuffer("");//檢測是否有sd卡,有沒有對sd卡進行讀寫的權限if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){File sdCardDir = Environment.getExternalStorageDirectory();//獲取到文件的存儲位置try {fis= new FileInputStream(new File(sdCardDir.getCanonicalFile()+"/info2"));BufferedReader br = new BufferedReader(new InputStreamReader(fis));String str=null;while((str=br.readLine())!=null){sb.append(str);}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally{if(fis!=null){try {fis.close();} catch (IOException e) {e.printStackTrace();}}}}return sb.toString();}/**把內容寫到SD卡中*/private void writeDB(String str){RandomAccessFile random =null;if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){try {File sdCardDir = Environment.getExternalStorageDirectory();//獲取到文件的存儲位置File targetFile= new File(sdCardDir+"/info2");random= new RandomAccessFile(targetFile, "rw"); random.seek(targetFile.length());random.write(str.getBytes());} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally{if(random!=null){try {random.close();} catch (IOException e) {e.printStackTrace();}}}}} }效果圖:
SD
轉載于:https://www.cnblogs.com/java20130726/archive/2011/11/04/3218339.html
總結
以上是生活随笔為你收集整理的android 之数据存储(IO)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 后座儿童掉落车外 私家车压实线挡车流救援
- 下一篇: IIS中“使用 XSL 样式表无法查看