Android之文件操作和JUnit

来源:互联网 发布:淘宝卡西欧卖表带吗 编辑:程序博客网 时间:2024/06/05 18:29

1>写一个文件保存和读取的应用程序。和javaEE一样MVC的设计模式,在android里M应该是Service层,那么Service层和view层应该可以并行开发。因为程序比较简单,我就先写view了。

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><TextViewandroid:id="@+id/fileNameLabel"      android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="@string/fileNameLabel"    /><EditTextandroid:id="@+id/fileNameEdit"      android:layout_width="fill_parent"     android:layout_height="wrap_content"    /><TextViewandroid:id="@+id/fileTxtLabel"      android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="@string/fileTxtLabel"    /><EditTextandroid:id="@+id/fileTxtEdit"      android:layout_width="fill_parent"    android:minLines="3"     android:layout_height="wrap_content"    />    <Buttonandroid:id="@+id/fileSaveBtn"      android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="@string/fileSaveBtn"    /></LinearLayout>


2>然后是Service层。

 

package com.duantl.service;import java.io.FileOutputStream;import android.content.Context;public class FileService {private Context context;public FileService(Context context) {this.context = context;}/** * 以私有模式输出文件内容 * @param fileName * @param content * @throws Exception */public void save(String fileName, String content) throws Exception {FileOutputStream outStream = context.openFileOutput(fileName, Context.MODE_PRIVATE);outStream.write(content.getBytes());outStream.close();}}


 3>再写控制层之前,先用JUnit进行测试。

package com.duantl.file;import android.test.AndroidTestCase;import com.duantl.service.FileService;public class FileServiceTest extends AndroidTestCase {public void saveTest() throws Exception {FileService fileService = new FileService(this.getContext());fileService.save("www.txt", "wangguan");}}


当然别忘记了改AndroidManifest.xml,添加JUnit配置

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="com.duantl"      android:versionCode="1"      android:versionName="1.0">    <uses-sdk android:minSdkVersion="8" />    <application android:icon="@drawable/icon" android:label="@string/app_name">        <uses-library android:name="android.test.runner" />        <activity android:name="file.MainActivity"                  android:label="@string/app_name">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application>    <instrumentation android:name="android.test.InstrumentationTestRunner"  android:targetPackage="com.duantl" android:label="Tests for My App" /></manifest>

 

4>测试成功,那么好,就开始控制层。

 

package com.duantl.file;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import com.duantl.service.FileService;public class MainActivity extends Activity {    /** Called when the activity is first created. */private EditText fileNameEdit = null;private EditText fileTxtEdit = null;private Button fileSaveBtn = null;private FileService fileService;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                fileNameEdit = (EditText)this.findViewById(R.id.fileNameEdit);        fileTxtEdit = (EditText)this.findViewById(R.id.fileTxtEdit);        fileSaveBtn = (Button)this.findViewById(R.id.fileSaveBtn);                fileSaveBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubString fileNameStr = fileNameEdit.getText().toString();String fileTxtStr = fileTxtEdit.getText().toString();fileService = new FileService(MainActivity.this);try {fileService.save(fileNameStr, fileTxtStr);Toast.makeText(MainActivity.this, R.string.success, Toast.LENGTH_LONG).show();} catch (Exception e) {// TODO Auto-generated catch blockToast.makeText(MainActivity.this, R.string.error, Toast.LENGTH_LONG).show();e.printStackTrace();}}});    }}


写功能就写好了,,那么看看读取的功能。。。

原创粉丝点击