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