将数据存储到SD卡上
来源:互联网 发布:软件自动化研究生 编辑:程序博客网 时间:2024/05/16 18:12
一、运行效果图
二、核心代码
1.MainActivity的代码:
public class MainActivity extends Activity implements OnClickListener{ private Button read_btn;private Button write_btn;private TextView show;private EditText editText;private String FILE_NAME;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); read_btn = (Button)findViewById(R.id.read); write_btn = (Button)findViewById(R.id.write); show = (TextView)findViewById(R.id.show); editText = (EditText)findViewById(R.id.editText); read_btn.setOnClickListener(this); write_btn.setOnClickListener(this); }public void onClick(View v){switch(v.getId()){case R.id.read:String str=read(FILE_NAME);if(str!=null){show.setText(str);}else{show.setText("未读取到内容");}break;case R.id.write:String content=editText.getText().toString();write(content,FILE_NAME);break;default:break;}}/** * 写入方法 * @param content 写入的内容 * @param fileName 写入文件的文件名称 */private void write(String content,String fileName){try{//手机是否插入了SD卡if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//获取SD卡的目录File sdCardDir=Environment.getExternalStorageDirectory();File file=new File(sdCardDir.getCanonicalPath()+"/"+fileName);//创建RandomAccessFile对象RandomAccessFile raf=new RandomAccessFile(file,"rw");//将文件记录指针移动到最后raf.seek(file.length());//写入文件raf.write(content.getBytes());raf.close();}}catch(Exception e){e.printStackTrace();}}/** * 读取文件 * @param fileName 文件名称 * @return 读取的字符串 */private String read(String fileName){try{//手机是否插入了SD卡if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//获取SD卡的目录File sdCardDir=Environment.getExternalStorageDirectory();FileInputStream fis=new FileInputStream(sdCardDir.getCanonicalPath()+"/"+fileName);BufferedReader bf=new BufferedReader(new InputStreamReader(fis));StringBuffer sb=new StringBuffer("");String line=null;while((line=bf.readLine())!=null){sb.append(line);}bf.close();return sb.toString();}return null;}catch(Exception e){e.printStackTrace();return null;}} @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
2.activity_main的代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <EditText android:id="@+id/editText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text=""/> <Button android:id="@+id/read" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/editText" android:text="读取文件"/> <Button android:id="@+id/write" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/read" android:text="写入文件"/> <TextView android:id="@+id/show" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/write" android:text=""/> </RelativeLayout>
三、遇到的问题
在安卓自带的模拟器 上无法写入数据,没有SD卡,只有新下载的模拟器才能运行出效果
0 0
- 将数据存储到SD卡上
- 将数据存储到sd卡
- 将数据存储到SD卡中
- 将数据存储到SD卡中
- 调用相机并将照片存储到sd卡上
- 调用相机并将照片存储到sd卡上
- 把数据存储到外部SD卡上
- Android调用相机并将照片存储到sd卡上
- Android调用相机并将照片存储到sd卡上
- Android调用相机并将照片存储到sd卡上
- Android调用相机并将照片存储到sd卡上
- Android调用相机并将照片存储到sd卡上
- Android调用相机并将照片存储到sd卡上
- Android调用相机并将照片存储到sd卡上
- android调用相机并将照片存储到sd卡上
- Android调用相机并将照片存储到sd卡上
- Android调用相机并将照片存储到sd卡上
- Android调用相机并将照片存储到sd卡上
- 从P1到P7——我在淘宝这7年
- linux下添加定时任务 详解示例
- 找出一组数据的不同数据
- 简单聊一下makefile中的 =, :=, ?=和+=
- Jbpm 分派任务的几种方式
- 将数据存储到SD卡上
- Java泛型与反射
- poj 2531 Network Saboteur
- 360加固(apk二次签名)
- Android Menu 单选设置
- 给开发者的10个忠告
- HTTP响应
- 161106
- 给 Java 学习者的超全教程整理