【Android】【转】文件保存与读取

发布时间:2016-12-6 13:53:09 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"【Android】【转】文件保存与读取",主要涉及到【Android】【转】文件保存与读取方面的内容,对于【Android】【转】文件保存与读取感兴趣的同学可以参考一下。

  原文地址: http://tdq222.iteye.com/blog/701161 注: 在Activity中有 getFileDir() 和 getCacheDir(); 方法可以获得当前的手机自带的存储空间中的当前包文件的路径 getFileDir() ----- /data/data/cn.xxx.xxx(当前包)/files getCacheDir() ----- /data/data/cn.xxx.xxx(当前包)/cache   ? 1. 编写文件读取与写入功能实现类 FileService       package cn.android.service;       import java.io.ByteArrayOutputStream;     import java.io.FileInputStream;     import java.io.FileOutputStream;       import android.content.Context;     import android.util.Log;       /**      * 文件保存与读取功能实现类      * @author Administrator      *      * 2010-6-28 下午08:15:18      */     public class FileService {         public static final String TAG = "FileService";         private Context context;           //得到传入的上下文对象的引用         public FileService(Context context) {             this.context = context;         }           /**          * 保存文件          *          * @param fileName 文件名          * @param content  文件内容          * @throws Exception          */         public void save(String fileName, String content) throws Exception {               // 由于页面输入的都是文本信息,所以当文件名不是以.txt后缀名结尾时,自动加上.txt后缀             if (!fileName.endsWith(".txt")) {                 fileName = fileName + ".txt";             }                           byte[] buf = fileName.getBytes("iso8859-1");                           Log.e(TAG, new String(buf,"utf-8"));                           fileName = new String(buf,"utf-8");                           Log.e(TAG, fileName);                           // Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND             // Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。             // Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。             // MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。             // 如果希望文件被其他应用读和写,可以传入:             // openFileOutput("output.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);               FileOutputStream fos = context.openFileOutput(fileName, context.MODE_PRIVATE);             fos.write(content.getBytes());             fos.close();         }           /**          * 读取文件内容          *          * @param fileName 文件名          * @return 文件内容          * @throws Exception          */         public String read(String fileName) throws Exception {               // 由于页面输入的都是文本信息,所以当文件名不是以.txt后缀名结尾时,自动加上.txt后缀             if (!fileName.endsWith(".txt")) {                 fileName = fileName + ".txt";             }               FileInputStream fis = context.openFileInput(fileName);             ByteArrayOutputStream baos = new ByteArrayOutputStream();               byte[] buf = new byte[1024];             int len = 0;               //将读取后的数据放置在内存中---ByteArrayOutputStream             while ((len = fis.read(buf)) != -1) {                 baos.write(buf, 0, len);             }               fis.close();             baos.close();               //返回内存中存储的数据             return baos.toString();           }       }   2. 编写Activity类:     package cn.android.test;       import android.app.Activity;     import android.os.Bundle;     import android.util.Log;     import android.view.View;     import android.widget.Button;     import android.widget.EditText;     import android.widget.Toast;     import cn.android.service.FileService;       public class TestAndroidActivity extends Activity {         /** Called when the activity is first created. */                   //得到FileService对象         private FileService fileService = new FileService(this);         //定义视图中的filename输入框对象         private EditText fileNameText;         //定义视图中的contentText输入框对象         private EditText contentText;         //定义一个土司提示对象         private Toast toast;                     @Override         public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);                     //得到视图中的两个输入框和两个按钮的对象引用         Button button = (Button)this.findViewById(R.id.button);         Button read = (Button)this.findViewById(R.id.read);         fileNameText = (EditText) this.findViewById(R.id.filename);         contentText = (EditText) this.findViewById(R.id.content);                   //为保存按钮添加保存事件         button.setOnClickListener(new View.OnClickListener() {                 @Override                 public void onClick(View v) {                                           String fileName = fileNameText.getText().toString();                     String content = contentText.getText().toString();                                           //当文件名为空的时候,提示用户文件名为空,并记录日志。                     if(isEmpty(fileName)) {                         toast = Toast.makeText(TestAndroidActivity.this, R.string.empty_filename, Toast.LENGTH_LONG);                         toast.setMargin(RESULT_CANCELED, 0.345f);                                                           toast.show();                           Log.w(fileService.TAG, "The file name is empty");                         return;                     }                                           //当文件内容为空的时候,提示用户文件内容为空,并记录日志。                     if(isEmpty(content)) {                         toast = Toast.makeText(TestAndroidActivity.this, R.string.empty_content, Toast.LENGTH_LONG);                         toast.setMargin(RESULT_CANCELED, 0.345f);                                                           toast.show();                           Log.w(fileService.TAG, "The file content is empty");                         return;                     }                                           //当文件名和内容都不为空的时候,调用fileService的save方法                     //当成功执行的时候,提示用户保存成功,并记录日志                     //当出现异常的时候,提示用户保存失败,并记录日志                     try {                         fileService.save(fileName, content);                         toast = Toast.makeText(TestAndroidActivity.this, R.string.success, Toast.LENGTH_LONG);                         toast.setMargin(RESULT_CANCELED, 0.345f);                                                           toast.show();                           Log.i(fileService.TAG, "The file save successful");                     } catch (Exception e) {                         toast = Toast.makeText(TestAndroidActivity.this, R.string.fail, Toast.LENGTH_LONG);                         toast.setMargin(RESULT_CANCELED, 0.345f);                                                           toast.show();                           Log.e(fileService.TAG, "The file save failed");                     }                                       }         });                             //为读取按钮添加读取事件         read.setOnClickListener(new View.OnClickListener() {                 @Override                 public void onClick(View v) {                                           //得到文件名输入框中的值                     String fileName = fileNameText.getText().toString();                                           //如果文件名为空,则提示用户输入文件名,并记录日志                     if(isEmpty(fileName)) {                         toast = Toast.makeText(TestAndroidActivity.this, R.string.empty_filename, Toast.LENGTH_LONG);                         toast.setMargin(RESULT_CANCELED, 0.345f);                                                           toast.show();                           Log.w(fileService.TAG, "The file name is empty");                         return;                     }                                           //调用fileService的read方法,并将读取出来的内容放入到文本内容输入框里面                     //如果成功执行,提示用户读取成功,并记录日志。                     //如果出现异常信息(例:文件不存在),提示用户读取失败,并记录日志。                     try {                         contentText.setText(fileService.read(fileName));                         toast = Toast.makeText(TestAndroidActivity.this, R.string.read_success, Toast.LENGTH_LONG);                         toast.setMargin(RESULT_CANCELED, 0.345f);                                                           toast.show();                           Log.i(fileService.TAG, "The file read successful");                     } catch (Exception e) {                         toast = Toast.makeText(TestAndroidActivity.this, R.string.read_fail, Toast.LENGTH_LONG);                         toast.setMargin(RESULT_CANCELED, 0.345f);                                                           toast.show();                           Log.e(fileService.TAG, "The file read failed");                     }                 }         });                             }                   //编写一个isEmpty方法,判断字符串是否为空         private boolean isEmpty(String s) {         if(s == null || "".equals(s.trim())) {             return true;         }         return false;         }               } ?    作者:风倾清凌 出处:http://www.cnblogs.com/Amandaliu/

上一篇:十年茫茫软件路
下一篇:MD5算法入门

相关文章

相关评论