Chinaunix首页 | 论坛 | 博客
  • 博客访问: 900208
  • 博文数量: 322
  • 博客积分: 6688
  • 博客等级: 准将
  • 技术积分: 3626
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-19 11:26
文章分类

全部博文(322)

文章存档

2013年(5)

2012年(66)

2011年(87)

2010年(164)

分类: Java

2010-12-31 11:10:58

数据的存储和访问

DataActivity

Java代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package org.wp.file;  
 
import java.io.InputStream;  
import java.io.OutputStream;  
import org.wp.service.FileService;  
import android.app.Activity;  
import android.content.Context;  
import android.os.Bundle;  
import android.util.Log;  
import android.view.View;  
import android.widget.Button;  
import android.widget.EditText;  
import android.widget.TextView;  
import android.widget.Toast;  
 
public class DataActivity extends Activity {  
    private static final String TAG = "DataActivity";  
    private EditText filenameText;  
    private EditText contentText;  
    private TextView resultView;  
    private Button saveButton;  
    private Button readButton;  
 
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        filenameText = (EditText) this.findViewById(R.id.filename);  
        contentText = (EditText) this.findViewById(R.id.content);  
        resultView = (TextView) this.findViewById(R.id.result);  
        saveButton = (Button) this.findViewById(R.id.save);  
        readButton = (Button) this.findViewById(R.id.read);  
        saveButton.setOnClickListener(listener);  
        readButton.setOnClickListener(listener);  
    }  
 
    private View.OnClickListener listener = new View.OnClickListener() {  
        @Override  
        public void onClick(View arg0) {  
            Button button = (Button) arg0;  
            String filename = filenameText.getText().toString();  
 
            switch (button.getId()) {  
            case R.id.save:  
                int resId = R.string.success;  
                String content = contentText.getText().toString();  
                try {  
                    OutputStream outStream = DataActivity.this.openFileOutput(  
                            filename, Context.MODE_PRIVATE);  
                    FileService.save(outStream, content);  
                } catch (Exception e) {  
                    Log.e(TAG, e.toString());  
                    resId = R.string.error;  
                }  
                Toast.makeText(DataActivity.this, resId, Toast.LENGTH_LONG).show();  
                break;  
            case R.id.read:  
                try {  
                    InputStream inStream = DataActivity.this.openFileInput(filename);  
                    String text = FileService.read(inStream);  
                    resultView.setText(text);  
                } catch (Exception e) {  
                    Log.e(TAG, e.toString());  
                    Toast.makeText(DataActivity.this, "读取失败",  
                                    Toast.LENGTH_LONG).show();  
                }  
                break;  
            }  
        }  
    };  
}

FileService

Java代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package org.wp.service;  
 
import java.io.ByteArrayOutputStream;  
import java.io.InputStream;  
import java.io.OutputStream;  
 
public class FileService {  
 
    /** 
     * 保存数据 
     *  
     * @param outStream 
     * @param content 
     * @throws Exception 
     */  
    public static void save(OutputStream outStream, String content)  
            throws Exception {  
        outStream.write(content.getBytes());  
        outStream.close();  
    }  
 
    /** 
     * 读取数据 
     *  
     * @param inStream 
     * @return 
     * @throws Exception 
     */  
    public static String read(InputStream inStream) throws Exception {  
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();  
        byte[] buffer = new byte[1024];  
        int len = -1;  
        while ((len = inStream.read(buffer)) != -1) {  
            outStream.write(buffer, 0, len);  
        }  
        byte[] data = outStream.toByteArray();  
        outStream.close();  
        inStream.close();  
        return new String(data);  
    }  
}

FileServiceTest

Java代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package org.wp.file;  
 
import java.io.InputStream;  
import java.io.OutputStream;  
import org.wp.service.FileService;  
import android.content.Context;  
import android.test.AndroidTestCase;  
import android.util.Log;  
 
/** 
 * Context.MODE_PRIVATE 
 * 为默认操作模式,代表该文件是私有数据,只能被应用本身访问, 
 * 在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中 
 * 可以使用Context.MODE_APPEND 
 *  
 * Context.MODE_APPEND 
 * 该模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。 
 *  
 * Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。 
 * MODE_WORLD_READABLE:表示当前文件可以被其他应用读取。 
 * MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。 
 *  
 * 如果希望文件被其他应用读和写,可以传入:  
 * openFileOutput("wp.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); 
 *  
 * Context.MODE_PRIVATE = 0 
 * Context.MODE_APPEND = 32768 
 * Context.MODE_WORLD_READABLE = 1 
 * Context.MODE_WORLD_WRITEABLE = 2  
 *  
 * 创建的文件保存在/data/data//files目录 
 * 查看文件 Window ==> Show View ==> Other ==> Android ==> File Explorer 
 *  
 * @author wp 
 * 
 */  
 
public class FileServiceTest extends AndroidTestCase {  
    private static final String TAG = "FileServiceTest";  
 
    public void testSave() throws Exception {  
        OutputStream outStream = this.getContext().openFileOutput("wp.txt",  
                Context.MODE_PRIVATE);  
        FileService.save(outStream, "Android test");  
    }  
 
    public void testRead() throws Exception {  
        InputStream inStream = this.getContext().openFileInput("wp.txt");  
        String content = FileService.read(inStream);  
        Log.i(TAG, content);  
    }  
}

main.xml

Xml代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 version="1.0" encoding="utf-8"?>  
 xmlns:android=""  
    android:orientation="vertical"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    >  
     xmlns:android=""  
        android:orientation="vertical"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        >  
            
            android:layout_width="wrap_content"   
            android:layout_height="wrap_content"   
            android:text="@string/filename"  
            android:id="@+id/filenameLable"  
        />  
          
            android:layout_width="200px"  
            android:layout_height="wrap_content"  
            android:layout_alignTop="@id/filenameLable"  
            android:layout_toRightOf="@id/filenameLable"  
            android:layout_marginLeft="10px"  
            android:text="wp.txt"  
            android:id="@+id/filename"  
            />  
    >  
      
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:text="@string/content"  
        />  
      
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:minLines="3"  
        android:id="@+id/content"  
        />  
     xmlns:android=""  
        android:orientation="vertical"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        >  
           
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:text="@string/save"  
            android:id="@+id/save"  
            />  
          
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:text="@string/read"  
            android:layout_toRightOf="@id/save"  
            android:layout_alignTop="@id/save"  
            android:id="@+id/read"  
            />     
    >  
      
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:id="@+id/result"  
        />  
>

strings.xml

Xml代码

1
2
3
4
5
6
7
8
9
10
11
 version="1.0" encoding="utf-8"?>  
>  
     name="hello">Hello World, DataActivity!>  
     name="app_name">数据保存>  
     name="filename">文件名称>  
     name="content">文件内容>  
     name="save">保存>  
     name="read">读取文件内容>  
     name="success">保存成功>  
     name="error">保存失败>  
>

AndroidManifest.xml

Xml代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 version="1.0" encoding="utf-8"?>  
 xmlns:android=""  
    package="org.wp.file" android:versionCode="1" android:versionName="1.0">  
     android:icon="@drawable/icon" android:label="@string/app_name">  
         android:name="android.test.runner" />  
         android:name=".DataActivity" android:label="@string/app_name">  
            >  
                 android:name="android.intent.action.MAIN" />  
                 android:name="android.intent.category.LAUNCHER" />  
            >  
        >  
    >  
     android:minSdkVersion="7" />  
     android:name="android.test.InstrumentationTestRunner"  
        android:targetPackage="org.wp.file" android:label="Tests for My App" />  
>

原文作者:onewayonelife

阅读(619) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-12-31 19:03:01

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com