简单的Android对文件进行读写操作

环境:
1.系统:window7
2.Android版本:2.2
3.eclipse3.5.2(伽利略)
一、基本的流程图(写入文件) 
  
二、模拟器运行界面 
  1.主界面              
  
  2.保存(不符合条件)
  
  3.正常保存
  
  4.读取文件
  
  5.关于编者
  
三、代码如下:
  
  1.保存文件的主要代码 
 
保存的主代码
 1 bSave.setOnClickListener(new View.OnClickListener() {
 2             
 3             @Override
 4             public void onClick(View v) {
 5                 // TODO Auto-generated method stub
 6                  resId=R.string.success;
 7                 file_name=filename.getText().toString();
 8                 file_content=filecontent.getText().toString();
 9                 /*    openFileOutput API
10                  * FileOutputStream openFileOutput (String name, int mode)
11                  * Open a private file associated with this Context's application package for writing. Creates the file if it doesn't already exist.
12                  */
13                 /*                            Context四种模式的API
14                  * Context.MODE_APPEND -->if the file already exists then write data to the end of the existing file instead of erasing it.
15                  * Context.MODE_PRIVATE -->the default mode, where the created file can only be accessed by the calling application (or all applications sharing the same user ID). 
16                  * Context.MODE_WORLD_READABLE -->allow all other applications to have read access to the created file.
17                  * Context.MODE_WORLD_WRITEABLE -->allow all other applications to have write access to the created file.
18                  */
19                 flag=InsertInfo();
20                 if(flag){
21                     try{
22                         OutputStream outStream=FileStoreActivity.this.openFileOutput(file_name, MODE_PRIVATE);
23                         FileService.save(outStream, file_content);
24                         
25                     }catch(Exception e){
26                         Log.e(TAG, e.toString());
27                         resId=R.string.error;
28                     }
29                     Toast.makeText(FileStoreActivity.this, resId, Toast.LENGTH_LONG).show();
30                 }
31             }
32 
33             
34         });
 
  2.读取文件的主要代码
 
读取主代码
 1 Button bRead=(Button)findViewById(R.id.read);
 2         bRead.setOnClickListener(new View.OnClickListener() {
 3         
 4             @Override
 5             public void onClick(View v) {
 6                 // TODO Auto-generated method stub
 7                 //此时隐藏了文件内容框和文件内容的label
 8                  filecontent.setVisibility(View.GONE);
 9                 TextView content=(TextView)findViewById(R.id.content);
10                 content.setVisibility(View.GONE);
11                 InputStream inStream;
12                 file_name=filename.getText().toString();
13                 
14                 /*    API
15                  * FileInputStream openFileInput (String name) 
16                  * Open a private file associated with this Context's application package for reading. 
17                  */
18                 try {
19                     inStream = FileStoreActivity.this.openFileInput(file_name);
20                     String context=FileService.read(inStream).toString();
21                     Toast.makeText(FileStoreActivity.this, context, Toast.LENGTH_LONG).show();
22                 } catch (Exception e) {
23                     Log.e(TAG,e.toString());
24                     resId=R.string.error;
25                 }
26             }
27         });
 
  3.关于编者的代码
 
 
关于编码代码
Button bAbout=(Button)findViewById(R.id.about);
        bAbout.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                new AlertDialog.Builder(FileStoreActivity.this).setTitle("编者信息")
                .setMessage(
                            "编者: naive_monk"                + "\n"
                        +     "爱好:篮球、音乐、交友"            + "\n" 
                        +     "Q Q:1271522052"                  + "\n"
                        +    "邮箱:summerdir@gmail.com"         + "\n"
                        +     "所在城市:广东惠州 "                + "\n")
                .setCancelable(false).setPositiveButton("确定",
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(
                                    DialogInterface dialog, int id) {
                                // TODO Auto-generated method stub
                                dialog.dismiss();
                            }
                        }).setNegativeButton("退出",
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(
                                    DialogInterface dialog, int id) {
                                // TODO Auto-generated method stub
                                dialog.dismiss();
                            }
                        }).show();
            }
        });
 
 
  4.业务代码
 
 
代码
/*
     * 保存文件
     */
    public static void save(OutputStream outStream, String content) throws Exception {
        // 写入数据
        outStream.write(content.getBytes());
        outStream.close();
    }
    /*
     * 读取文件
     */
    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);
    }
 
 
四、小结
  
这个例子只是简单的操作文件的读写,很多地方都不够完善,希望有兴趣的网友们可以互相交流下~~~ 
posted @ 2011-01-19 15:29  与时俱进  阅读(629)  评论(0编辑  收藏  举报
友情链接:同里老宅院民居客栈