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.     }  
posted @   brave-sailor  阅读(235)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2016-09-01 Android Studio解决unspecified on project app resolves to an APK archive which is not supported
2016-09-01 Android Studio中Gradle使用详解
2016-09-01 Android Studio-ApplicationId 与 PackageName
2016-09-01 Android官方技术文档翻译——ApplicationId 与 PackageName
2015-09-01 android用canvas绘制两种波纹效果
2015-09-01 android国际化(多语言)
点击右上角即可分享
微信分享提示