Android文件操作

第一步:前台页面main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >



    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/fileName" />



    <EditText

        android:id="@+id/txtName"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:hint=""

        android:maxLines="1" />



    <TextView

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="@string/fileContext" />



    <EditText

        android:id="@+id/txtContext"

        android:layout_width="fill_parent"

        android:layout_height="100dp"

        android:gravity="left"

        android:hint=""

        android:minLines="4" />



    <Button

        android:id="@+id/btnSave"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="@string/btnSave" />



</LinearLayout>

第二步:后台代码

package apk.example.androidapk;



import android.os.Bundle;

import android.os.Environment;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import android.app.Activity;

import apk.example.service.FileServer;



public class MainActivity extends Activity {

    public Button btnSave;

    public EditText txtName, txtContext;



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        txtName = (EditText) findViewById(R.id.txtName);

        txtContext = (EditText) findViewById(R.id.txtContext);

        btnSave = (Button) findViewById(R.id.btnSave);

        btnSave.setOnClickListener(new BtnSaveListener());

    }



    private final class BtnSaveListener implements View.OnClickListener {



        @Override

        public void onClick(View v) {

            String fileName = txtName.getText().toString();

            String fileContext = txtContext.getText().toString();

            FileServer server = new FileServer(getApplicationContext());

            try {

                if (Environment.getExternalStorageState().equals(

                        Environment.MEDIA_MOUNTED)) {

                    server.saveToSDCard(fileName, fileContext);

                    // 保存成功

                    Toast.makeText(getApplicationContext(), R.string.success,

                            Toast.LENGTH_LONG).show();

                } else {

                    // SDCard不存在或者写保护

                    Toast.makeText(getApplicationContext(),

                            R.string.sdCardMessage, Toast.LENGTH_LONG).show();

                }

            } catch (Exception e) {

                // 保存失败

                Toast.makeText(getApplicationContext(), R.string.fail,

                        Toast.LENGTH_LONG).show();

                e.printStackTrace();

            }

        }

    }

}
package apk.example.service;



import java.io.File;

import java.io.FileOutputStream;



import android.content.Context;

import android.os.Environment;



public class FileServer {

    private Context context;



    public FileServer(Context context) {

        this.context = context;

    }



    /**

     * 

     * @param 文件名称

     * @param 文件内容

     * @throws 异常信息

     */

    public void save(String fileName, String fileContext) throws Exception {

        // 私有操作模式:创建出来的文件只能被本应用访问,其它应用无法访问该文件,另外采用私有操作模式创建的文件,写入文件中的内容会覆盖原文件的内容

        FileOutputStream outStream = context.openFileOutput(fileName,

                Context.MODE_PRIVATE);

        outStream.write(fileContext.getBytes());

        outStream.close();

    }



    /**

     * 

     * @param 文件名称

     * @param 文件内容

     * @throws 异常信息

     */

    public void saveToSDCard(String fileName, String context) throws Exception {

        // 私有操作模式:创建出来的文件只能被本应用访问,其它应用无法访问该文件,另外采用私有操作模式创建的文件,写入文件中的内容会覆盖原文件的内容

        File file = new File(Environment.getExternalStorageDirectory(),

                fileName);

        FileOutputStream outStream = new FileOutputStream(file);

        outStream.write(context.getBytes());

        outStream.close();

    }

}

如图:

Android文件操作

注:在AndroidManifest.xml文件中添加下列权限。

    <!-- 在SDCard中创建与删除文件权限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <!-- 往SDCard写入数据权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

 

你可能感兴趣的:(android)