• Android开发学习之数据存取


      Android系统中提供了一种文件读写的方法,可以将一些数据以文件的形式保存在设备中。比如一些word文档,PDF文档,图片,音频,视频文件等。

    使用文件读写方法的步骤:

    1.调用Context.openFileInput()方法获得Java文件输入流(FileInputStream)

    2.调用Context.openFileOutput()方法获得java文件输出流(FileOutputStream)

    3.使用Resources.openRawResource(R.raw.DataFile)方法返回InputStream

       下面的具体实例,在一个Activity里面创建两个EditText和两个Button,第一个EditText和Button将EditText的内容写到文件file.txt文件中。第二个EditText和Button将内容从文件file.txt中读取出来显示。文件被默认保存在/data/data/package/files下面。

     

     MainActivity.java

    1. package com.android.file;  
    2.  
    3. import java.io.FileInputStream;  
    4. import java.io.FileOutputStream;  
    5. import android.app.Activity;  
    6. import android.os.Bundle;  
    7. import android.view.View;  
    8. import android.view.View.OnClickListener;  
    9. import android.widget.Button;  
    10. import android.widget.EditText;  
    11.  
    12. public class MainActivity extends Activity {  
    13.     //声明文件名字符串常量  
    14.     private static final String FILE_NAME="file.txt";  
    15.     private Button writeBtn,readBtn;  
    16.     private EditText writeText,readText;  
    17.     @Override 
    18.     public void onCreate(Bundle savedInstanceState) {  
    19.         super.onCreate(savedInstanceState);  
    20.         setContentView(R.layout.main);  
    21.         writeBtn = (Button)findViewById(R.id.Button1);  
    22.         readBtn = (Button)findViewById(R.id.Button2);  
    23.           
    24.         writeText = (EditText)findViewById(R.id.EditText1);  
    25.         readText = (EditText)findViewById(R.id.EditText2);  
    26.           
    27.         writeBtn.setOnClickListener(new OnClickListener() {  
    28.             @Override 
    29.             public void onClick(View v) {  
    30.                 //写内容  
    31.                 write(writeText.getText().toString());  
    32.             }  
    33.         });  
    34.           
    35.         readBtn.setOnClickListener(new OnClickListener() {  
    36.             @Override 
    37.             public void onClick(View v) {  
    38.                 //读内容  
    39.                 readText.setText(read());  
    40.             }  
    41.         });  
    42.     }  
    43.       
    44.     private String read(){  
    45.         try {  
    46.             //实例化文件输入流对象  
    47.             FileInputStream fis = openFileInput(FILE_NAME);  
    48.             //定义缓存数组  
    49.             byte[] buffer = new byte[fis.available()];  
    50.             //读到缓冲区  
    51.             fis.read(buffer);  
    52.             return new String(buffer);  
    53.         } catch (Exception e) {  
    54.             e.printStackTrace();  
    55.         }  
    56.         return null;  
    57.     }  
    58.       
    59.     private void write(String content){  
    60.         try {  
    61.             //实例化文件输出流  
    62.             //openFileOutput(String name, int mode)  
    63.             //第一个参数文件名  
    64.             //第二个是模式   
    65.             //MODE_APPEND表示要创建的文件存在则新写入的数据不会覆盖以前的数据。  
    66.             FileOutputStream fos = openFileOutput(FILE_NAME, MODE_APPEND);  
    67.             //写内容  
    68.             fos.write(content.getBytes());  
    69.             //关闭文件流  
    70.             fos.close();  
    71.         } catch (Exception e) {  
    72.             e.printStackTrace();  
    73.         }  
    74.     }  

     main.java

    1. <?xml version="1.0" encoding="utf-8"?> 
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    3.     android:orientation="vertical"   
    4.     android:layout_width="fill_parent" 
    5.     android:layout_height="fill_parent" 
    6.     > 
    7.     <TextView   
    8.         android:layout_width="fill_parent" 
    9.         android:layout_height="wrap_content"   
    10.         android:text="请被文本输入内容"   
    11.         />        
    12.     <EditText   
    13.         android:text=""   
    14.         android:id="@+id/EditText1" 
    15.         android:layout_width="fill_parent"   
    16.         android:layout_height="wrap_content"   
    17.         android:height="100px" 
    18.         />        
    19.     <Button   
    20.         android:id="@+id/Button1"   
    21.         android:layout_width="wrap_content" 
    22.         android:layout_height="wrap_content"   
    23.         android:text="写数据" 
    24.         />        
    25.     <EditText   
    26.         android:text=""   
    27.         android:id="@+id/EditText2" 
    28.         android:layout_width="fill_parent"   
    29.         android:layout_height="wrap_content"   
    30.         android:height="100px" 
    31.         />        
    32.     <Button   
    33.         android:id="@+id/Button2"   
    34.         android:layout_width="wrap_content" 
    35.         android:layout_height="wrap_content"   
    36.         android:text="读数据" 
    37.         />        
    38. </LinearLayout> 

    效果图:

     

    在终端下输入“adb shell”命令进入Android系统查看一下我们的文件是否写入成功。

     

  • 相关阅读:
    js事件冒泡替我背了很多黑锅 嘿嘿
    opencvmin函数
    关于Block Formatting Context--BFC和IE的hasLayout
    javascript面向对象包装类Class的类库解析
    nodejs中exports与module.exports的区别
    ie6固定定位层fixed
    CSS的类名交集复合选择器
    遮罩层覆盖整个页面
    nodejs的require模块及路径
    struts.properties配置详解
  • 原文地址:https://www.cnblogs.com/xiaochao1234/p/3568270.html
Copyright © 2020-2023  润新知