安卓Android对文件操作代码总结

作者:简简单单 2013-10-04
 代码如下 复制代码


package cn.youxigu.files;
 
import cn.youxigu.service.*;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.view.*;
 
public class MainActivity extends Activity {
 
    EditText filename;
    EditText content;
    Button   buttonsave;
    Button   buttonopen;
    Button   buttonsaveSdCard;
    Button   buttonopenSdCard;
 
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        filename = (EditText)this.findViewById(R.id.filename);
        content  = (EditText)this.findViewById(R.id.content);
        //获取本地保存按钮
        buttonsave   = (Button)this.findViewById(R.id.buttonsave);
        //获取本地打开按钮
        buttonopen   = (Button)this.findViewById(R.id.buttonsaveopen);
 
        //获取SD卡保存按钮
        buttonsaveSdCard   = (Button)this.findViewById(R.id.buttonsavesdcard);
        //获取SD卡打开按钮
        buttonopenSdCard   = (Button)this.findViewById(R.id.buttonsaveopensdcard);
 
 
        buttonsave.setOnClickListener(new SaveFileClick());
 
        buttonopen.setOnClickListener(new OpenFileClick());
 
        buttonsaveSdCard.setOnClickListener(new SaveSdCardFileClick());
 
        buttonopenSdCard.setOnClickListener(new OpenSdCardFileClick());
 
    }
 
 
    /**
     * 保存到本地的存储
     * @author xiaolu
     *
     */    
    private final class SaveFileClick implements View.OnClickListener{
 
        @Override
        public void onClick(View v) {
 
            String files    = filename.getText().toString();
            String contents = content.getText().toString();
 
            FileService file = new FileService(getApplicationContext());
            try{
                file.save(files, contents);
                Toast.makeText(getApplicationContext(), "保存成功", 1).show();
            } catch (Exception e){
                Toast.makeText(getApplicationContext(), "保存失败", 1).show();
                e.printStackTrace();
            }
 
        }
 
    }
 
 
    /**
     * 打开本地的存储
     * @author xiaolu
     *
     */
    private final class OpenFileClick implements View.OnClickListener{
 
        @Override
        public void onClick(View v) {
 
            String filenames    = filename.getText().toString();
 
            FileService file = new FileService(getApplicationContext());
 
            try{
 
                String contents = file.read(filenames);
                //填充到文本框
                content.setText(contents);
 
                Toast.makeText(getApplicationContext(), "打开成功", 1).show();
            } catch (Exception e){
                Toast.makeText(getApplicationContext(), "打开失败", 1).show();
                e.printStackTrace();
            }
 
        }
 
    }
 
 
    /**
     * 保存到SD卡的存储
     * @author xiaolu
     *
     */    
    private final class SaveSdCardFileClick implements View.OnClickListener{
 
        @Override
        public void onClick(View v) {
 
            String files    = filename.getText().toString();
            String contents = content.getText().toString();
 
            FileService file = new FileService(getApplicationContext());
            try{
                file.saveSdCard(files, contents);
                Toast.makeText(getApplicationContext(), "保存到SD卡成功", 1).show();
            } catch (Exception e){
                Toast.makeText(getApplicationContext(), "保存到SD卡失败", 1).show();
                e.printStackTrace();
            }
 
        }
 
    }
 
 
    /**
     * 打开SD卡的存储
     * @author xiaolu
     *
     */
    private final class OpenSdCardFileClick implements View.OnClickListener{
 
        @Override
        public void onClick(View v) {
 
            String filenames    = filename.getText().toString();
 
            FileService file = new FileService(getApplicationContext());
 
            try{
 
                String contents = file.readSdCard(filenames);
                //填充到文本框
                content.setText(contents);
 
                Toast.makeText(getApplicationContext(), "打开SdCard成功", 1).show();
            } catch (Exception e){
                Toast.makeText(getApplicationContext(), "打开SdCard失败", 1).show();
                e.printStackTrace();
            }
 
        }
 
    }
 
}

 


FileService文件代码:
 

 代码如下 复制代码

package cn.youxigu.service;
 
 
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
 
import android.content.Context;
import android.os.Environment;
 
public class FileService {
 
    //获取上下文
    private Context context;
 
    public FileService(Context context){
        this.context = context;
    }
 
    /**
     * 读取本地存储文件内容
     * @param filename 文件名
     * @return 文件内容
     * @throws Exception
     */
 
    public String read(String filename) throws Exception{
 
         FileInputStream InputStream = context.openFileInput(filename);
 
         //申请写入内存
         ByteArrayOutputStream  outStream = new ByteArrayOutputStream();
 
         byte[] buffer = new byte[1024];
 
         int len = 0;
         while((len = InputStream.read(buffer)) != -1){
 
             outStream.write(buffer);
         }
 
         byte[] data = outStream.toByteArray();
 
         return new String(data);
    }
 
 
 
    /**
     * 保存到本地存储
     * @param filename 文件名
     * @param content  文件内容
     * @throws Exception
     */
    public void save(String filename, String content) throws Exception{
        FileOutputStream outStream = context.openFileOutput(filename, Context.MODE_PRIVATE);
 
        outStream.write(content.getBytes());
        outStream.close();      
    }
 
 
    /**
     * 保存到SdCard存储
     * @param filename 文件名
     * @param content  文件内容
     * @throws Exception
     */
    public void saveSdCard(String filename, String content) throws Exception{
 
        //获取SD卡路径
        File sdCardDir = Environment.getExternalStorageDirectory();
 
        File saveFile = new File(sdCardDir, filename);
 
        FileOutputStream outStream = new FileOutputStream(saveFile);
 
        outStream.write(content.getBytes());
 
        outStream.close();
 
    }
 
 
    /**
     * 读取SdCard存储文件内容
     * @param filename 文件名
     * @return 文件内容
     * @throws Exception
     */
 
    public String readSdCard(String filename) throws Exception{
 
        //获取SD卡路径
         File sdCardDir = Environment.getExternalStorageDirectory();
 
         File openFile = new File(sdCardDir, filename);
 
         //用输入流对象进行读取数据
         FileInputStream InputStream = new FileInputStream(openFile);
 
         //申请写入内存
         ByteArrayOutputStream  outStream = new ByteArrayOutputStream();
 
         byte[] buffer = new byte[1024];
 
         int len = 0;
 
         while((len = InputStream.read(buffer)) != -1){
 
             outStream.write(buffer);
         }
 
 
         byte[] data = outStream.toByteArray();
 
         return new String(data);
    }
 
 
 
}

 


main.xml 文件代码:
 

 代码如下 复制代码

    android:layout_width=“fill_parent”
    android:layout_height=“fill_parent”
    android:orientation=“vertical” >
            android:layout_width=“fill_parent”
        android:layout_height=“wrap_content”
       
        android:text=“@string/filenametext” />
            android:layout_width=“fill_parent”
        android:layout_height=“wrap_content”
        android:id=“@+id/filename”/>
   
            android:layout_width=“fill_parent”
        android:layout_height=“wrap_content”
           android:minLines=“3″
           android:id=“@+id/content”/>
            android:layout_width=“wrap_content”
        android:layout_height=“wrap_content”
        android:text=“@string/buttonsave”
        android:id=“@+id/buttonsave”
        />
   
            android:layout_width=“wrap_content”
        android:layout_height=“wrap_content”
        android:text=“@string/buttonopen”
        android:id=“@+id/buttonsaveopen”
        />
   
   
            android:layout_width=“wrap_content”
        android:layout_height=“wrap_content”
        android:text=“@string/buttonsavesdcard”
        android:id=“@+id/buttonsavesdcard”
        />
   
            android:layout_width=“wrap_content”
        android:layout_height=“wrap_content”
        android:text=“@string/buttonopensdcard”
        android:id=“@+id/buttonsaveopensdcard”
        />

相关文章

精彩推荐