• Android对文件的操作(简单的文件读取与写入)


    简单的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);
    }

    四、小结

      

    这个例子只是简单的操作文件的读写,很多地方都不够完善,希望有兴趣的网友们可以互相交流下~~~ 


     


     

  • 作者: swyma
    出处: http://www.cnblogs.com/maoan/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    iOS 开发小记 (五)
    ReentrantLock API
    多线程之生产者消费者
    maven私服的项目使用配置
    maven仓库nexus安装配置
    thymeleaf自定义标签方言处理
    关于svn更新失败,clearup异常解决
    shiro+spring
    日常遇到的小问题
    springmvc控制器controller单例问题
  • 原文地址:https://www.cnblogs.com/maoan/p/1938278.html
  • Copyright © 2020-2023  润新知