zoukankan      html  css  js  c++  java
  • 简单的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);
        }
     
     
    四、小结
      
    这个例子只是简单的操作文件的读写,很多地方都不够完善,希望有兴趣的网友们可以互相交流下~~~ 
  • 相关阅读:
    kvm虚拟化介绍(1)
    linux进阶之yum管理
    python基础之面向对象(三))(实战:烤地瓜(SweetPotato))
    python基础之python牛逼的设计模式
    zabbix监控之邮件报警通知
    zabbix监控之概念和安装
    nosql数据库之Redis集群
    nosql数据库之Redis持久化、备份和主从配置
    nosql数据库之Redis概念及基本操作
    python基础之面向对象(二)(封装、继承、多态)
  • 原文地址:https://www.cnblogs.com/top5/p/1939228.html
Copyright © 2011-2022 走看看