Android的文件操作

来源:互联网 发布:大数据时代epub 编辑:程序博客网 时间:2024/05/20 03:39

SD卡的地址mnt/sdcard,mnt和安卓底层linux内核有关。文件系统是被加载的?

android对文件的操作可以使用java原本的io函数。区别在于需要对manifest.xml进行修改。所以如果app包含文件读写功能,那么首先要让app获得读写SD卡的权限,在<application</application>的上方添加以下三句话

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>  

另一个区别在于在J2SE中文件地址用\\表示父子关系,而Android与Symbian一致,都是用/表示父子关系。

获得SD卡根目录路径Environment.getExternalStorageDirectory(),相当于"/mnt/sdcard/"。如果不是根目录,而是子目录比如/cd/,那么path=Environment.getExternalStorageDirectory()+"/cd/",cd的前后/不能少。

1、创建文件夹

  File filex = new File("/mnt/sdcard/A");  if(!filex.exists()){  try{  filex.mkdirs();  }  catch (Exception e) {  e.printStackTrace();  }  }
2、创建文件

  File file = new File("/mnt/sdcard/A/m.txt");//这里可以是txt也可是jpg,格式任意  if (!file.exists()){  try {  file.createNewFile();  }  catch (Exception e) {  e.printStackTrace();  }  }

3、写入文件

DataOutputStream out1;String s1=editText1.getText().toString();try{if(s1.length()!=0){m1.delete();m1.createNewFile();}out1=new DataOutputStream(new FileOutputStream(path+"m1.txt"));out1.writeUTF(s1);out1.close();}catch (Exception e) {e.printStackTrace();}


4、读出文件

DataInputStream in;try {    in=new DataInputStream(new FileInputStream(path+"m1.txt"));    editText1.setText(in.readUTF());    in.close();}catch (IOException e) {e.printStackTrace();}

5、完整程序

package com.example.androidfile;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class MainActivity extends Activity {private EditText editText1;String path="/mnt/sdcard/A/";File filex = new File(path);File m1 = new File(path+"m1.txt");@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);  if(!filex.exists()){  try{  filex.mkdirs();  }  catch (Exception e) {  e.printStackTrace();  }  }    if (!m1.exists()){  try {  m1.createNewFile();  }  catch (Exception e) {  e.printStackTrace();  }  }  editText1=(EditText) findViewById(R.id.editText1);  DataInputStream in;try {    in=new DataInputStream(new FileInputStream(path+"m1.txt"));    editText1.setText(in.readUTF());    in.close();}catch (IOException e) {e.printStackTrace();}  Button Button1=(Button) findViewById(R.id.button1);  Button1.setOnClickListener(new OnClickListener(){  public void onClick(View v){  DataOutputStream out1;  String s1=editText1.getText().toString();  try{    if(s1.length()!=0){m1.delete();m1.createNewFile();}    out1=new DataOutputStream(new FileOutputStream(path+"m1.txt"));    out1.writeUTF(s1);    out1.close();  }  catch (Exception e) {  e.printStackTrace();  }  }  });}@Overridepublic 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;}}
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.androidfile"    android:versionCode="1"    android:versionName="1.0" ><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>      <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="com.example.androidfile.MainActivity"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application>    <uses-sdk        android:minSdkVersion="8"        android:targetSdkVersion="17" /></manifest>


6、实际效果



0 0
原创粉丝点击