編輯:關於Android編程
文件存儲是每個系統都應該具有的功能,Android系統采用Java語言開發,所以它的文件存儲功能基本上和J2SE一樣的。為什麼會引入文件存儲?因為大文件、圖片等我們若只存儲在手機中很有限,一般都是用一個外存儲設備進行存儲。好了今天我們就講講用編程的方式在Android系統中進行存儲。
文件存儲的位置
一般文件默認存儲在/data/data/<包>/files/***.***(針對我們開發的APK的時候),當然我們也可以存儲在存儲卡上(這個時候需要在androidManifest.xml 設定文件的操作權限)。
openFileOutput() 寫入
在Activity組件中提供了此方法用於寫入文件數據,我們先看以下代碼,再做解釋:
public void store() {
try {
//獲取文件的輸出流
FileOutputStream out=this.openFileOutput("test.txt",Context.MODE_WORLD_READABLE);
//將界面上textboox1控件的值寫入到輸出文件流中
out.write(textboox1.getText().toString().getBytes());
//關閉文件流,數據保存成功
out.close();
} catch (FileNotFoundException e) {
return;
}
catch (IOException e){
return ;
}
}
從代碼中我們可以看到openFileOutput()有兩個參數,第一個是文件名,第二個則是文件的操作權限。它有以下操作權限:
Context.MODE_PRIVATE=0:為默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容,如果想把新寫入的內容追加到原文件中。可以使用Context.MODE_APPEND;
Context.MODE_APPEND = 32768:模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件;
Context.MODE_WORLD_READABLE = 1:表示當前文件可以被其他應用讀取;
Context.MODE_WORLD_WRITEABLE= 2:表示當前文件可以被其他應用寫入;
如果想需要有讀寫權限,需要將Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE表示。
openFileInput() 讀取
Activity組件提供了讀取的方法,默認的文件在/data/data/<包>/files/下,實例代碼如下:
public void onload()
{
try {
//文件輸入流
FileInputStream in=this.openFileInput("test.txt");
ByteArrayOutputStream stream=new ByteArrayOutputStream();
byte[] buffer=new byte[1024];
int length=-1;
//讀取數據並放在byte數組中
while((length=in.read(buffer))!=-1) {
//寫入byte文件流
stream.write(buffer,0,length);
}
stream.close();
in.close();
textboot1.setText(stream.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e){
return ;
}
}
SDCard 數據存儲
前面已經講到數據在存儲到外部設備時候,需要設定其操作權限。以下的操作方式是我們在實際項目開發過程中常用到的。
//1.用於獲取SDCard的狀態,如果手機裝有SDCard,並且可以進行讀寫,那麼方法返回的狀態等於Environment.MEDIA_MOUNTED
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
//2.獲取SDCard目錄
File sdCardDir = Environment.getExternalStorageDirectory();
//3.在外部設備上創建 獲取文件
File saveFile = new File(sdCardDir, “test.txt”);
//文件存儲位置在/sdcard/test.txt
//等價於 File saveFile = new File("/sdcard/a.txt");
//4.文件輸出流
FileOutputStream outStream = new FileOutputStream(saveFile);
//5.寫入數據
outStream.write("test".getBytes());
//6.關閉文件輸出流
outStream.close();
}
向服務器提交數據有兩種方式,post和get。兩者的區別主要有三點,安全性、長度限制、數據結構。其中get請求安全性相比較而言較差,數據長度受浏覽器地址欄限制,沒有方法體
Tween動畫Tween動畫又稱補間動畫。通過對view的位置、大小、透明度、角度的改變來實現動畫效果。補間動畫的基類是Animation。我們通常使用它的直接子類Rot
隨著app的迭代,嵌入的html5界面越來越多了,Webview這個強大組件引起的問題越發的多起來,例如: 1、WebView導致的oom問題 2、Android版本
概述:一般情況下,我們知道View類有個View.OnTouchListener內部接口,通過重寫他的onTouch(View v, MotionEvent event)