編輯:Android開發實例
以下內容給大家介紹Android數據存儲提供了五種方式:
1、SharedPreferences
2、文件存儲
3、SQLite數據庫
4、ContentProvider
5、網絡存儲
本文主要介紹如何使用文件來存儲數據。Android文件操作用到的是Java.IO中的FileOutputStream和FileInputStream類。
一、存儲文件
首先實例化一個FileOutputStream。
FileOutputStream foStream = openFileOutput(fileName, MODE_PRIVATE);
// fileName: 要寫入文件的名稱
// MODE_PRIVATE: 為默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容
// MODE_APPEND: 模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件.
// MODE_WORLD_READABLE: 表示當前文件可以被其他應用讀取,不推薦使用
// MODE_WORLD_WRITEABLE: 表示當前文件可以被其他應用寫入,不推薦使用
然後調用foStream.write()即可完成寫入。
byte[] buffer = fileContent.getBytes();
foStream.write(buffer);
Toast.makeText(MainActivity.this, "寫入成功",Toast.LENGTH_SHORT).show();
最後進行一些清理工作,刷新寫出流和關閉流。
foStream.flush();
foStream.close();
二、讀取文件
同樣的,首先實例化一個FileInputStream。
FileInputStream fiStream = openFileInput(fileName)
然後調用fiStream.read()即可
int len = fiStream.available();
byte[] buffer = new byte[len];
fiStream.read(buffer)
最後,將文本顯示並關閉讀文件流
etContent.setText(new String(buffer));
Toast.makeText(MainActivity.this, "讀取成功",Toast.LENGTH_SHORT).show();
fiStream.close();
三、完整代碼
import android.support.v.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import java.io.FileInputStream; import java.io.FileOutputStream; public class MainActivity extends AppCompatActivity { private EditText etName; private EditText etContent; private Button btnWrite; private Button btnRead; private String fileName = ""; private String fileContent = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etName = (EditText)findViewById(R.id.etName); etContent = (EditText)findViewById(R.id.etContent); btnWrite = (Button)findViewById(R.id.btnWrite); btnRead = (Button)findViewById(R.id.btnRead); btnWrite.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { fileName = etName.getText().toString(); fileContent = etContent.getText().toString(); try { FileOutputStream foStream = openFileOutput(fileName, MODE_PRIVATE); byte[] buffer = fileContent.getBytes(); foStream.write(buffer); Toast.makeText(MainActivity.this, "寫入成功",Toast.LENGTH_SHORT).show(); foStream.flush(); foStream.close(); }catch(Exception e){ e.printStackTrace(); } } }); btnRead.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { fileName = etName.getText().toString(); try{ FileInputStream fiStream = openFileInput(fileName); int len = fiStream.available(); byte[] buffer = new byte[len]; fiStream.read(buffer); etContent.setText(new String(buffer)); Toast.makeText(MainActivity.this, "讀取成功",Toast.LENGTH_SHORT).show(); fiStream.close(); }catch(Exception e){ e.printStackTrace(); } } }); } } <RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/etName" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:text="文件名" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/etContent" android:layout_below="@+id/etName" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:text="文件內容" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="保存" android:id="@+id/btnWrite" android:layout_alignTop="@+id/btnRead" android:layout_toLeftOf="@+id/btnRead" android:layout_toStartOf="@+id/btnRead" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="讀取" android:id="@+id/btnRead" android:layout_below="@+id/etContent" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> </RelativeLayout>
通常來說,在進行Android項目開發的時候可以通過MediaRecorder和AudioRecord這兩個工具來實現錄音的功能,MediaRecorder直接把
本文實例講述了Android編程之SurfaceView學習示例。分享給大家供大家參考,具體如下: SurfaceView是View的子類,使用的方式與任何Vie
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用
1、JDK:Java Development Kit,java開發工具包。http://www.oracle.com/technetwork/java/javas