IT技术分享
IT技术分享 您当前的位置:主页 > IT技术分享 >
Android中的文件I/O操作
发布时间:2019-01-16 编辑:AG88

  本节分两部分:

  1.访问SD卡.

  2.访问手机中的存储文件夹.

  3.读取assets中的文件.

  一.访问SD卡:

  1.界面编辑(reslayoutmain.xml):

  [java]

  

  凤凰娱乐网址android:orientation="vertical"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  >

  

  android:id="@+id/Button01"

  android:layout_width="128dp"

  android:layout_height="wrap_content"

  android:text="打开" >

  

  

  android:id="@+id/button1"

  android:layout_width="125dp"

  android:layout_height="wrap_content"

  android:text="测试按钮" />

  

  android:id="@+id/ScrollView01"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content">

  

  android:editable="false"

  android:id="@+id/EditText01"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content">

  

  

  

  

  android:orientation="vertical"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  >

  

  android:id="@+id/Button01"

  android:layout_width="128dp"

  android:layout_height="wrap_content"

  android:text="打开" >

  

  

  android:id="@+id/button1"

  android:layout_width="125dp"

  android:layout_height="wrap_content"

  android:text="测试按钮" />

  

  android:id="@+id/ScrollView01"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content">

  

  android:editable="false"

  android:id="@+id/EditText01"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content">

  

  

  

  2. 代码编辑(srcwyfzclMyActivity.java):

  [java]

  package wyf.zcl;

  import java.io.File; //引入相关包

  import java.io.FileInputStream; //引入相关包

  import android.app.Activity; //引入相关包

  import android.os.Bundle; //引入相关包

  import android.view.View; //引入相关包

  import android.widget.Button; //引入相关包

  import android.widget.EditText; //引入相关包

  import android.widget.Toast; //引入相关包

  public class MyActivity extends Activity {

  /** Called when the activity is first created. */

  Button but; //打开按钮引用

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  but=(Button)findViewById(R.id.Button01);

  //打开按钮初始化

  but.setOnClickListener(new View.OnClickListener() {

  //为打开按钮添加监听器

  @Override

  public void onClick(View v) {

  String contentResult=loadContentFromSDCard("歌词.txt");

  //调用读取文件方法,获得文件内容

  EditText etContent=(EditText)findViewById(R.id.EditText01);

  //实例化EditText

  etContent.setText(contentResult);

  //设置EditText的内容

  }

  });

  }

  public String loadContentFromSDCard(String fileName){

  //从SD卡读取内容

  String content=null; //sd卡 的内容字符串

  try{

  File f=new File("/sdcard/ebook/"+fileName);//待读取的文件

  int length=(int)f.length();

  byte[] buff=new byte[length];

  FileInputStream fis=new FileInputStream(f);

  fis.read(buff); // 从此输入流中将 byte.length 个字节的数据读入一个 byte 数组中

  fis.close(); //关闭此输入流并释放与此流关联的所有系统资源

  content=new String(buff,"UTF-8");

  }catch(Exception e){

  Toast.makeText(this, "对不起,没有找到文件",

  Toast.LENGTH_SHORT).show();

  }

  return content;

  }

  }

  package wyf.zcl;

  import java.io.File; //引入相关包

  import java.io.FileInputStream; //引入相关包

  import android.app.Activity; //引入相关包

  import android.os.Bundle; //引入相关包

  import android.view.View; //引入相关包

  import android.widget.Button; //引入相关包

  import android.widget.EditText; //引入相关包

  import android.widget.Toast; //引入相关包

  public class MyActivity extends Activity {

  /** Called when the activity is first created. */

  Button but; //打开按钮引用

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  but=(Button)findViewById(R.id.Button01);

  //打开按钮初始化

  but.setOnClickListener(new View.OnClickListener() {

  //为打开按钮添加监听器

  @Override

  public void onClick(View v) {

  String contentResult=loadContentFromSDCard("歌词.txt");

  //调用读取文件方法,获得文件内容

  EditText etContent=(EditText)findViewById(R.id.EditText01);

  //实例化EditText

  etContent.setText(contentResult);

  //设置EditText的内容

  }

  });

  }

  public String loadContentFromSDCard(String fileName){

  //从SD卡读取内容

  String content=null; //sd卡 的内容字符串

  try{

  File f=new File("/sdcard/ebook/"+fileName);//待读取的文件

  int length=(int)f.length();

  byte[] buff=new byte[length];

  FileInputStream fis=new FileInputStream(f);

  fis.read(buff); // 从此输入流中将 byte.length 个字节的数据读入一个 byte 数组中

  fis.close(); //关闭此输入流并释放与此流关联的所有系统资源

  content=new String(buff,"UTF-8");

  }catch(Exception e){

  Toast.makeText(this, "对不起,没有找到文件",

  Toast.LENGTH_SHORT).show();

  }

  return content;

  }

  }

  运行效果如下:

  二.访问手机中的存储文件夹:

  访问手机中的文件夹和访问SD卡一样,只需要指明具体位置即可,只是权限这一块需要提升。

  三.读取assets中的文件:

  1.在项目工程的"assets"目录下,新建一个UTF8编码的文本文件"test.txt"作为测试的对象。

  2.界面编辑(reslayoutmain.xml):

  [java]

  

  android:orientation="vertical"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  >

  

  android:text="打开"

  android:id="@+id/Button01"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content">

  

  

  android:id="@+id/ScrollView01"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content">

  

  android:editable="false"

  android:id="@+id/EditText01"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content">

  

  

  

  

  android:orientation="vertical"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  >

  

  android:text="打开"

  android:id="@+id/Button01"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content">

  

  

  android:id="@+id/ScrollView01"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content">

  

  android:editable="false"

  android:id="@+id/EditText01"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content">

  

  

  

  3. 代码编辑(srcwyfzclMyActivity.java):

  [java]

  package wyf.zcl;

  import java.io.ByteArrayOutputStream; //引入相关包

  import java.io.InputStream; //引入相关包

  import android.app.Activity; //引入相关包

  import android.os.Bundle; //引入相关包

  import android.view.View; //引入相关包

  import android.widget.Button; //引入相关包

  import android.widget.EditText; //引入相关包

  import android.widget.Toast; //引入相关包

  public class MyActivity extends Activity {

  /** Called when the activity is first created. */

  private Button but;//打开按钮

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  but=(Button)findViewById(R.id.Button01);//打开按钮实例化

  but.setOnClickListener(new View.OnClickListener() {//打开按钮添加监听器

  @Override

  public void onClick(View v) {

  String contentResult=loadFromAssert("test.txt");

  EditText etContent=(EditText)findViewById(R.id.EditText01);

  etContent.setText(contentResult);

  }

  });

  }

  public String loadFromAssert(String fileName){

  String content=null;//结果字符串

  try{

  InputStream is=this.getResources().getAssets().open(fileName);//打开文件

  int ch=0;

  ByteArrayOutputStream baos = new ByteArrayOutputStream();//实现了一个输出流

  while((ch=is.read())!=-1){

  baos.write(ch); // 将指定的字节写入此 byte 数组输出流。

  }

  byte[] buff=baos.toByteArray(); //以 byte 数组的形式返回此输出流的当前内容

  baos.close(); //关闭流

  is.close(); //关闭流

  content=new String(buff,"UTF-8"); //设置字符串编码

  }catch(Exception e){

  Toast.makeText(this, "对不起,没有找到指定文件!", Toast.LENGTH_SHORT).show();

  }

  return content;

  }

  }

  package wyf.zcl;

  import java.io.ByteArrayOutputStream; //引入相关包

  import java.io.InputStream; //引入相关包

  import android.app.Activity; //引入相关包

  import android.os.Bundle; //引入相关包

  import android.view.View; //引入相关包

  import android.widget.Button; //引入相关包

  import android.widget.EditText; //引入相关包

  import android.widget.Toast; //引入相关包

  public class MyActivity extends Activity {

  /** Called when the activity is first created. */

  private Button but;//打开按钮

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  but=(Button)findViewById(R.id.Button01);//打开按钮实例化

  but.setOnClickListener(new View.OnClickListener() {//打开按钮添加监听器

  @Override

  public void onClick(View v) {

  String contentResult=loadFromAssert("test.txt");

  EditText etContent=(EditText)findViewById(R.id.EditText01);

  etContent.setText(contentResult);

  }

  });

  }

  public String loadFromAssert(String fileName){

  String content=null;//结果字符串

  try{

  InputStream is=this.getResources().getAssets().open(fileName);//打开文件

  int ch=0;

  ByteArrayOutputStream baos = new ByteArrayOutputStream();//实现了一个输出流

  while((ch=is.read())!=-1){

  baos.write(ch); // 将指定的字节写入此 byte 数组输出流。

  }

  byte[] buff=baos.toByteArray(); //以 byte 数组的形式返回此输出流的当前内容

  baos.close(); //关闭流

  is.close(); //关闭流

  content=new String(buff,"UTF-8"); //设置字符串编码

  }catch(Exception e){

  Toast.makeText(this, "对不起,没有找到指定文件!", Toast.LENGTH_SHORT).show();

  }

  return content;

  }

  }

  4.运行效果:

http://www.bkjia.com/Androidjc/433261.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/433261.htmlTechArticle本节分两部分: 1.访问SD卡. 2.访问手机中的存储文件夹. 3.读取assets中的文件. 一.访问SD卡: 1.界面编辑(reslayoutmain.xml): [java] android:orienta...

本文源自: AG环亚集团官网

上一篇:关于web前端的学习路线,web学习路线 下一篇:没有了

Copyright © 2005-2016 http://www.letskungfu.com AG环亚集团官网_AG亚游平台_AG8环亚集团_新浪新闻版权所有 AG环亚集团官网_AG亚游平台_AG8环亚集团_新浪新闻