編輯:關於Android編程
在本篇博客中,我們要實現在Android中“新建文件”和“讀取文件”:
目標界面:
在輸入文件名稱之後,輸入文件內容,點擊保存,可以保存成為一個文檔
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ytfPyKOsztLDx8/IvajBotK7uPZBbmRyb2lkIFByb2plY3TP7sS/o6zP7sS/w/uzxqO6RmlsZaGjPC9wPgo8cD7Iu7rzo6zO0sPH0OjSqs/IyrXP1sS/serK08281tC1xL3nw+ajujwvcD4KPHA+seC8rXN0cmluZ3MueG1szsS8/qO6PC9wPgo8cD48cHJlIGNsYXNzPQ=="brush:java;">
由此,我們就把界面構造完成了,接下來就是編寫java代碼(關於界面編寫過程不再詳細說明)。
然後,我們要編輯FileActivity.java(代碼具體解釋在程序中):
package cn.itcast.files;
import cn.itcast.fservice.FileService;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class FileActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); //實現布局頁面的跳轉
Button button = (Button)this.findViewById(R.id.button); //獲取Button屬性
button.setOnClickListener(new ButtonClickListener()); //為Button設置監聽器
}
/**
* Button點擊事件監聽器實現
* @author hc
*
*/
private final class ButtonClickListener implements View.OnClickListener{
@Override
public void onClick(View v) { //生成默認的方法
EditText filenameText = (EditText)findViewById(R.id.filename); //獲得“文件名稱”輸入框對象
EditText contentText = (EditText)findViewById(R.id.filecontent); //獲得“文件內容”輸入框對象
String filename = filenameText.getText().toString(); //獲得輸入的“文件名稱”
String content = contentText.getText().toString(); //獲得輸入的“文件內容”
//new一個FileService對象,getApplicationContext()返回應用的上下文,生命周期是整個應用,應用摧毀它才摧毀
FileService service = new FileService(getApplicationContext());
try {
service.save(filename,content); //調用save()方法保存文件
Toast.makeText(getApplicationContext(), R.string.success, 1).show(); //調用一個Toast呈現一個“保存完成”的消息
} catch (Exception e) {
Toast.makeText(getApplicationContext(), R.string.fail, 1).show(); //調用Toast對象呈現一個“保存失敗”的消息
e.printStackTrace();
}
}
}
}
因此,我們需要建立一個FileService.java類:
package cn.itcast.fservice;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.content.Context;
public class FileService {
private Context context;
public FileService(Context context) {
super();
this.context = context;
}
/**
* 寫入文件和關閉文件
* @param content 寫入內容
* @param outStream 輸出流
* @throws IOException
*/
private void write(String content, FileOutputStream outStream)
throws IOException {
outStream.write(content.getBytes());
outStream.close();
}
/**
* 保存文件
* @param filename 文件名稱
* @param content 文件內容
* @throws Exception
*/
public void save(String filename, String content) throws Exception {
//私有操作模式:創建出來的文件只能被本應用訪問,其他應用無法訪問該文件。
//另外采用私有操作模式創建的文件,寫入文件中的內容會覆蓋源文件內容
FileOutputStream outStream = context.openFileOutput(filename,Context.MODE_PRIVATE); //采用私有操作模式打開輸出流
write(content, outStream);
}
/**
* 讀取文件內容
* @param filename 文件名稱
* @return 文件內容
* @throws Exception
*/
public String read(String filename)throws Exception{
FileInputStream inStream = context.openFileInput(filename);
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
//讀完返回-1,未讀完返回讀了多少數據
while((len = inStream.read(buffer)) != -1){
outStream.write(buffer, 0 , len);
}
byte[] data = outStream.toByteArray();
return new String(data);
}
}

可以看到,我們文件已經是保存完成了,在這裡我們需要找到這個文件被保存在了哪裡。
首先,我們需要打開File Explorer視圖:

我們可以在data—>data—>cn.itcast.files(這個是工程所在的包)—>files這個目錄下邊,找到Test.txt文件,然後我們把它導出到桌面
可以看到裡邊的內容就是我們輸入的內容。
說到這裡,文件的保存已經介紹完畢了,接下來我們要介紹一下文件的讀取:
我們需要建立一個測試文件,建立測試文件需要首先配置AndroidManifest.xml(關於這個文件的配置請見Android開發系列(四),這就就不再繼續配置了)
我們建立一個測試類:FileServiceTest.java(繼承AndroidTestCase類):
package cn.itcast.test;
import cn.itcast.fservice.FileService;
import android.test.AndroidTestCase;
import android.util.Log;
public class FileServiceTest extends AndroidTestCase {
private static final String TAG = "FileServiceTest"; //設置一個TAG
public void testRead() throws Throwable{
FileService service = new FileService(this.getContext());
String result = service.read("Test.txt"); //讀取文件Test.txt
Log.i(TAG, result); //把得到的文件的內容result交給TAG。然後我們就可以在LogCat界面中查看得到了
}
}
可以查看如下:

android 自定義圖片合集(自定義控件)
留守公司就剩下幾個人了。我沒有年假故還在堅守。廢話不多說,閒來無事。想練習一下自定義控件的應用以及學習圖片類操作以及處理等等。所以我在網上找了大神文章,鴻洋大神的博客。找
如何使用android命令
作為Windows用戶,擁有著出色的圖形化界面體驗,但命令行則的圖形化界面的根基,下面就來看看如何用命令行來執行android命令吧。首先你得進入你的Android SD
Android分分鐘教你寫一個個性化的加載框
閒來無事寫的一個加載框,實現效果如下:實現思路:其實看樣子就感覺很簡單的...在自定義Relativelayout裡用onDraw繪制就行了。復習了一下以前學的知識。&n
分享Android中Toast的自定義使用
1.Toast源碼分析老規矩,我們先去看Toast的源碼。Toast有兩種顯示布局方式,一種最常見調用Toast.makeText() ,看源碼是這樣寫的pu