Androlid入门之文件系统操作(三)文件读写

     

  1. import java.io.*;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.View;  
  6. import android.view.View.OnClickListener;  
  7. import android.widget.*;  
  8.   
  9. public class FileIOTest extends Activity {  
  10.      
  11.     private LinearLayout mainView=null;  
  12.     private Button writeButton=null;  
  13.     private Button readButton=null;  
  14.     private TextView tv=null;  
  15.       
  16.     public void onCreate(Bundle savedInstanceState) {  
  17.         super.onCreate(savedInstanceState);  
  18.         writeButton=new Button(this);  
  19.         writeButton.setText("文件写入");  
  20.         writeButton.setOnClickListener(new OnClickListener(){  
  21.             public void onClick(View v) {  
  22.                 fileWrite();  
  23.             }  
  24.         });  
  25.         readButton=new Button(this);  
  26.         readButton.setEnabled(false);  
  27.         readButton.setText("文件读出");  
  28.         readButton.setOnClickListener(new OnClickListener(){  
  29.             public void onClick(View v) {  
  30.                 fileRead();  
  31.             }  
  32.         });  
  33.         tv=new TextView(this);  
  34.         tv.setText("这里显示读出结果");  
  35.         mainView=new LinearLayout(this);  
  36.         mainView.setOrientation(LinearLayout.VERTICAL);  
  37.         mainView.addView(writeButton);  
  38.         mainView.addView(readButton);  
  39.         mainView.addView(tv);  
  40.         setContentView(mainView);  
  41.     }  
  42.     /*文件写*/  
  43.     void fileWrite(){  
  44.         //File file=this.getFilesDir();//打开私有目录  
  45.         File file=new File("/sdcard");  
  46.         String path=file.getAbsolutePath();//获取路径  
  47.         String name="mydata1.dat";//新建文件名  
  48.         File filex=new File(path,name);  
  49.         //如果文件不存在,则创建一个文件  
  50.         if(!filex.exists()){  
  51.             try {  
  52.                 filex.createNewFile();  
  53.             } catch (IOException e) {  
  54.                 e.printStackTrace();  
  55.             }  
  56.         }  
  57.         //获取文件输出流  
  58.         FileOutputStream fos=null;  
  59.         try {  
  60.             fos=new FileOutputStream(filex);  
  61.             byte buf[]="Hello,这是Android入门之文件操作(三)文件读写!".getBytes();  
  62.             //上面涉及到字符串转字符,为了保证编码正常,建议采用下面的方法  
  63.             //ByteArrayOutputStream baos=new ByteArrayOutputStream();  
  64.             //DataOutputStream dos=new DataOutputStream(baos);  
  65.             //try {dos.writeUTF("XXXXXXXXXXXXXXXXX");catch (IOException e1) {e1.printStackTrace();}  
  66.             //byte[] buf=baos.toByteArray();  
  67.             try {  
  68.                 fos.write(buf);//全面覆盖式的写,如果要添加或者修改,得把原来的先读出来再做处理  
  69.                 fos.close();  
  70.             } catch (IOException e) {  
  71.                 e.printStackTrace();  
  72.             }  
  73.         } catch (FileNotFoundException e) {  
  74.             e.printStackTrace();  
  75.         }  
  76.         readButton.setEnabled(true);  
  77.     }  
  78.     /*文写读*/  
  79.     void fileRead(){  
  80.         //File file=this.getFilesDir();//打开私有目录  
  81.         File file=new File("/sdcard");  
  82.         String path=file.getAbsolutePath();//获取路径  
  83.         String name="mydata1.dat";//新建文件名  
  84.         File filex=new File(path,name);  
  85.         //  
  86.         try {  
  87.             FileInputStream fis=new FileInputStream(filex);  
  88.             byte buf[]=new byte[1024];  
  89.             try {  
  90.                 int len=fis.read(buf);  
  91.                 fis.close();  
  92.             } catch (IOException e) {  
  93.                 e.printStackTrace();  
  94.             }  
  95.             //显示读取结果  
  96.             tv.setText(new String(buf));  
  97.             //上面涉及字符转字符串,为了保证编码正常,建议采用下面的方法  
  98.             //ByteArrayInputStream bais=new ByteArrayInputStream(buf);  
  99.             //DataInputStream dis=new DataInputStream(bais);  
  100.             //try {tv.setText(dis.readUTF());} catch (IOException e) {e.printStackTrace();}  
  101.         } catch (FileNotFoundException e) {  
  102.             e.printStackTrace();  
  103.         }  
  104.     }  
原文地址:https://www.cnblogs.com/Free-Thinker/p/7463973.html