編輯:關於Android編程
android應用大多數用的java開發,所以java的文件操作在android中完全適用,只不過android對手機而言,多了個外存儲設置SD卡。
----------------------------------------------簡單的界面布局-----------------------------------------------------------
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="請輸入保存內容" />
-----------------------------功能代碼-----------------------------------------------------------
public class MainActivity extends Activity implements OnClickListener {
/**內容輸入框 */
private EditText inputEdt;
/**保存(寫入)按鈕 */
private Button writeBtn;
/**讀取按鈕 */
private Button readBtn;
/**要保存的文件名*/
private static final String FILE_NAME = "temp_file.txt";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewsById();
}
private void findViewsById() {
inputEdt = (EditText) findViewById(R.id.input_edt);
writeBtn = (Button) findViewById(R.id.write_btn);
readBtn = (Button) findViewById(R.id.read_btn);
writeBtn.setOnClickListener(this);
readBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.write_btn:
writeData();
break;
case R.id.read_btn:
String result = readData();
inputEdt.setText(result);
break;
}
}
/*
* 方法openFileOutput(FILE_NAME, Activity.MODE_PRIVATE); 參數說明:以FILE_NAME文件名,Activity.MODE_PRIVATE文件的應用模式,打開一個輸出流如果文件不存系統會為你創建一個 注意這裡的文件名稱不能包括任何的/或者/這種分隔符,只能是文件名
* 該文件會被保存在/data/data/應用名稱/files/temp_file.txt 文件的操作模式有以下四種:MODE_PRIVATE 私有(只能創建它的應用訪問) 重復寫入時會文件覆蓋MODE_APPEND 私有 重復寫入時會在文件的末尾進行追加,而不是覆蓋掉原來的文件 MODE_WORLD_READABLE 公用 可讀 MODE_WORLD_WRITEABLE 公用 可讀寫
*/
private void writeData() {
String content = inputEdt.getText().toString();
try {
FileOutputStream outputStream = openFileOutput(FILE_NAME, Activity.MODE_PRIVATE);
outputStream.write(content.getBytes());
outputStream.flush();
outputStream.close();
Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_LONG).show();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 把剛剛保存的數據讀出來
* */
private String readData() {
String content = "";
try {
FileInputStream inputStream = this.openFileInput(FILE_NAME);
byte[] bytes = new byte[1024];
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
while (inputStream.read(bytes) != -1) {
arrayOutputStream.write(bytes, 0, bytes.length);
}
inputStream.close();
arrayOutputStream.close();
content = new String(arrayOutputStream.toByteArray());
} catch (Exception e) {
e.printStackTrace();
}
return content;
}
/****************上面的內容是把內容存到手機內存中*************************************/
/**判斷SDcard是否存在並且可讀寫*/
private boolean isSDcardExist() {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
return true;
} else {
Toast.makeText(getApplicationContext(), "內存卡不可用", 1000).show();
return false;
}
}
/**往內存卡中存文件*/
public void writeToSDCard(String filename, String filecontent) throws Exception {
File file = new File(Environment.getExternalStorageDirectory(), filename);
FileOutputStream outStream = new FileOutputStream(file);
outStream.write(filecontent.getBytes());
outStream.close();
}
/**讀SD卡中對應文件的內容*/
private String readSDCardFile(String filePath, String fileName) {
String result = "";
try {
File file = new File(filePath, fileName);
FileInputStream is = new FileInputStream(file);
byte[] b = new byte[is.available()];
is.read(b);
result = new String(b);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
---------注:-------------------------------------------
SD卡操作不要忘記在AndroidManifest.xml中添加對應權限:
本文介紹ActionBar與Fragment結合使用的一個實例,ActionBar是一個標識應用程序和用戶位置的窗口功能,並且給用戶提供操作和導航模式。 Actio
本篇博客內容轉自 github: https://github.com/shwenzhang/AndResGuard/blob/master/README.zh-cn.m
注:在Edittext和Textview中,不要加下面2個屬性中的任何一種。否則,當行數大於1行以後會發生表情、圖片對不齊的情況android:lineSpacingEx
這幾個月一直在忙項目上的事情,所以已經有一段時間不寫博客,抽時間整理下最近的收藏夾,感覺還是有一些新的知識點可以分享的。先從最近的說起,近期項目上需要支持視頻播放功能,雖