Android 数据的读取与写入
来源:互联网 发布:淘宝书批发 编辑:程序博客网 时间:2024/05/17 00:00
完成效果:在文本框中输入数字或文字,点击保存按钮然后再按读取按钮,输入内容显示到按钮下方。
在res下新建raw文件,点击读取raw按钮,输入内容显示到按钮下方。
新建一个assets,点击读取assets按钮,输入内容显示到按钮下方。
点击删除按钮,删除输入内容。
布局1:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.administrator.jreduch09.InnerIOActivity"><EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入内容" android:id="@+id/content" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="保存" android:id="@+id/save" android:layout_below="@+id/content" android:layout_alignParentEnd="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="读取" android:id="@+id/read" android:layout_below="@+id/content" android:layout_alignParentStart="true" /> <TextView android:layout_width="match_parent" android:layout_height="50dp" android:layout_below="@+id/read" android:id="@+id/show" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/delete" android:text="删除" android:layout_below="@+id/content" android:layout_centerHorizontal="true" /></RelativeLayout>代码:
package com.example.administrator.jreduch09;import android.os.Bundle;import android.os.Environment;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;public class SaveToSdCardActivity extends AppCompatActivity { private Button save,read,delete; private EditText content; private TextView show; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_inner_io); save= (Button) findViewById(R.id.save); read= (Button) findViewById(R.id.read); delete= (Button) findViewById(R.id.delete); show= (TextView) findViewById(R.id.show); content = (EditText) findViewById(R.id.content); save.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { saveFile(); } }); read.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { show.setText(readFile()); } }); delete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { removeFile(); } }); } //保存文件到SDcard中 public void saveFile(){ FileOutputStream fos=null; String state= Environment.getExternalStorageState(); //获取SD卡状态 if(!state.equals(Environment.MEDIA_MOUNTED)){ //判断SD卡是否就绪 Toast.makeText(getBaseContext(),"请检查SD卡",Toast.LENGTH_SHORT).show(); return; } File file=Environment.getExternalStorageDirectory(); //取得SD卡根目录 try { Log.d("===SD卡根目录:",file.getCanonicalPath()+"sd.txt"); fos=new FileOutputStream(file.getCanonicalPath()+"/sd.txt",true); String str=content.getText().toString(); fos.write(str.getBytes()); Toast.makeText(getBaseContext(),"保存成功",Toast.LENGTH_SHORT).show(); } catch (IOException e) { e.printStackTrace(); }finally { if(fos!=null){ try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } } public String readFile(){ BufferedReader reader =null; FileInputStream fis=null; //从SD卡读取文件 StringBuilder sdb=new StringBuilder(); String state=Environment.getExternalStorageState(); if(!state.equals(Environment.MEDIA_MOUNTED)){ Toast.makeText(getBaseContext(),"SD卡未就绪",Toast.LENGTH_SHORT).show(); return ""; } File root=Environment.getExternalStorageDirectory(); try { fis=new FileInputStream(root+"/sd.txt"); reader=new BufferedReader(new InputStreamReader(fis)); String row=""; while ((row=reader.readLine())!=null){ sdb.append(row); } } catch (FileNotFoundException e) { Toast.makeText(this,"文件不存在",Toast.LENGTH_SHORT).show(); e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { if(reader!=null){ try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return sdb.toString(); } public void removeFile(){ String state=Environment.getExternalStorageState(); if(!state.equals(Environment.MEDIA_MOUNTED)){ Toast.makeText(getBaseContext(),"SD卡未就绪",Toast.LENGTH_SHORT).show(); return; } File file=Environment.getExternalStorageDirectory(); File myFile=new File(file,"sd.txt"); if(myFile.exists()){ myFile.delete(); Toast.makeText(this,"文件已删除",Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(this,"文件不存在",Toast.LENGTH_SHORT).show(); } }}效果展示:
布局2:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.administrator.jreduch09.ReadRawAndAssetsActivity"><Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/raw" android:text="读取raw" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/assets" android:text="读取assets" android:layout_alignParentTop="true" android:layout_alignParentEnd="true" /> <TextView android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/show" android:layout_below="@+id/assets" /></RelativeLayout>代码:
package com.example.administrator.jreduch09;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class ReadRawAndAssetsActivity extends AppCompatActivity { private TextView show; private Button raw,assets; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_read_raw_and_assets); raw= (Button) findViewById(R.id.raw); assets= (Button) findViewById(R.id.assets); show= (TextView) findViewById(R.id.show); raw.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { show.setText(readRaw()); } }); assets.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { show.setText(readAssets()); } }); } public String readRaw(){ StringBuilder sbd=new StringBuilder(); InputStream is=null; BufferedReader reader=null; is=getResources().openRawResource(R.raw.settings); String row=""; try { reader=new BufferedReader(new InputStreamReader(is)); while ((row=reader.readLine())!=null) { sbd.append(row); } } catch (IOException e) { e.printStackTrace(); }finally { if(reader!=null){ try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return sbd.toString(); } public String readAssets(){ StringBuilder sdb=new StringBuilder(); BufferedReader reader=null; try { InputStream is=getResources().getAssets().open("city"); reader=new BufferedReader(new InputStreamReader(is)); String row=""; while ((row=reader.readLine())!=null){ sdb.append(row); } } catch (IOException e) { e.printStackTrace(); }finally { if(reader!=null){ try { reader.close(); } catch (IOException e) { } } } return sdb.toString(); }}settings中的内容:
1.大家好我是VAE。2.那是一条神奇的天路啊啊啊。3.我愿意为你,我愿意为你。4.如果你对天空向往。assets中的city的内容:
北京上海广州
效果展示:
0 0
- Android 数据的读取与写入
- Android 数据的读取与写入2
- 关于XML的读取与写入数据
- 数据的读取与写入体验
- 完善数据的读取与写入体验!
- Python中数据的写入与读取
- Android 文件的读取与写入
- android文件的写入与读取
- Android 图片的读取与写入
- java 从控制台读取数据,文件的读取与写入
- 2014-7-22 Android SharedPreferences 写入与读取数据
- 【Android开发小记--20】读取与写入XML格式数据
- 【Android 开发】:数据存储之File文件存储 [即SD卡的写入与读取]
- 【Android 开发】:数据存储之File文件存储 [即SD卡的写入与读取]
- EXCEL读取与写入数据的最佳方案(个人认为)
- EXCEL读取与写入数据的最佳方案(个人认为)
- EXCEL读取与写入数据的最佳方案
- EXCEL读取与写入数据的最佳方案【转载】
- lodop打印,仿超市小票,银行排队小票,超好用-jatoolsprinter
- 共同学习Java源代码--数据结构--AbstractSequentialList类
- 猫狗收容所
- Swap Nodes in Pairs_Leetcode_#24
- OpenGL中各种坐标系的理解
- Android 数据的读取与写入
- 利用Jsoup抓取网络数据
- Mahout clustering Canopy+K-means 源码分析
- Mark关于mybatis的一些简单东西
- Cells Not Under Attack
- UIImageView 作为tableHeaderView 遮挡cell,无情无耻无理取闹
- JAVA基础教程12:异常
- 分页制作
- 二维数组中的查找