• Android中使用File文件进行数据存储


     

    Android中使用File文件进行数据存储

      上一篇学到使用SharedPerences进行数据存储,接下来学习一下使用File进行存储 我们有时候可以将数据直接以文件的形式保存在设备中,

    例如:文本文件,图片文件等等

    使用File进行存储操作主要使用到以下的

    ①:public abstract FileInputStream openFileInput (String name)

    这个主要是打开文件,返回FileInputStream

    ②:public abstract FileOutputStream openFileOutput (String name, int mode)

    这个主要是写入文件,如果该文件不存在,直接进行创建,返回FileOutputStream

    Mode(主要有以下的四种的模式)

    MODE_APPEND  //在尾部追加
    MODE_PRIVATE //私有
    MODE_WORLD_READABLE //可读
    MODE_WORLD_WRITEABLE //可写

    ③:FileInputStream(获取文件输入流)与FileOutputStream (获取文件输出流)这两类在JavaIO 操作中很常见

    接下来进行操作 保存成功之后讲文件保存在当前应该程序的包名下的files/(可以改变存储的其他路径)

    源代码如下:

    [java] view plaincopy
     
    1. package com.jiangqq.file;  
    2.   
    3. import java.io.FileInputStream;  
    4. import java.io.FileOutputStream;  
    5.   
    6. import android.app.Activity;  
    7. import android.os.Bundle;  
    8. import android.view.View;  
    9. import android.view.View.OnClickListener;  
    10. import android.widget.Button;  
    11. import android.widget.EditText;  
    12. import android.widget.Toast;  
    13.   
    14. public class FileAcitivy extends Activity  
    15. {  
    16.     private Button bt1, bt2;  
    17.     private EditText et1, et2;  
    18.   
    19.     private static final String FILENAME = "temp_file.txt";  
    20.   
    21.     @Override  
    22.     public void onCreate(Bundle savedInstanceState) {  
    23.         super.onCreate(savedInstanceState);  
    24.         setContentView(R.layout.main);  
    25.         bt1 = (Button) this.findViewById(R.id.bt1);  
    26.         bt2 = (Button) this.findViewById(R.id.bt2);  
    27.         et1 = (EditText) this.findViewById(R.id.et1);  
    28.         et2 = (EditText) this.findViewById(R.id.et2);  
    29.         bt1.setOnClickListener(new OnClickListener() {  
    30.   
    31.             @Override  
    32.             public void onClick(View v) {  
    33.                 write(et1.getText().toString());  
    34.                 Toast.makeText(FileAcitivy.this, "文件写入成功", Toast.LENGTH_LONG)  
    35.                         .show();  
    36.             }  
    37.         });  
    38.         bt2.setOnClickListener(new OnClickListener() {  
    39.   
    40.             @Override  
    41.             public void onClick(View v) {  
    42.                 et2.setText(read());  
    43.                 Toast.makeText(FileAcitivy.this, "文件读出成功", Toast.LENGTH_LONG)  
    44.                         .show();  
    45.             }  
    46.         });  
    47.     }  
    48.   
    49.     // 读文件方法  
    50.     private String read() {  
    51.         try {  
    52.             FileInputStream inputStream = openFileInput(FILENAME);  
    53.             byte[] b = new byte[inputStream.available()];  
    54.             inputStream.read(b);  
    55.             return new String(b);  
    56.         } catch (Exception e) {  
    57.         }  
    58.         return null;  
    59.     }  
    60.   
    61.     // 写文件  
    62.     private void write(String content) {  
    63.         try {  
    64.             FileOutputStream fos = openFileOutput(FILENAME, MODE_APPEND);  
    65.             fos.write(content.getBytes());  
    66.             fos.close();  
    67.         } catch (Exception e) {  
    68.         }  
    69.     }  
    70. }  

    源代码下载链接:

    http://115.com/file/c2mu1pfd#
    Activity_18_File.rar

    原文 :http://blog.csdn.net/developer_jiangqq/article/details/7039852

  • 相关阅读:
    QQ在线人数图表
    使LumaQQ.NET支持接收长消息
    发现有趣的东东,Live Mail能自动显示人名
    关于转换QQ消息中系统表情,自定义表情和截图的函数
    使用Autofac,提示重写成员“Autofac.Integration.Mvc.AutofacDependencyResolver.GetService(System.Type)”时违反了继承安全性规则。重写方法的安全可访问性必须与所重写方法的安全可访问性匹配。
    libvirt笔记(未完待续)
    OpenStack Grizzly版本部署(离线)
    git学习笔记
    MyEclipse 报错 Errors running builder 'JavaScript Validator' on project......
    Response 关于浏览器header的方法
  • 原文地址:https://www.cnblogs.com/geniusxjq/p/4193882.html
Copyright © 2020-2023  润新知