文章标题
来源:互联网 发布:微信 积分 源码下载 编辑:程序博客网 时间:2024/05/29 09:10
首先,大家在学习的过程中记得大概的看下源码:源码在: 安装目录\sdk\sources\android-18\android\app\ContextImpl.java
@Override
public FileOutputStream openFileOutput(String name, int mode)
throws FileNotFoundException {
final boolean append = (mode&MODE_APPEND) != 0;
File f = makeFilename(getFilesDir(), name);
try {
FileOutputStream fos = new FileOutputStream(f, append);
setFilePermissionsFromMode(f.getPath(), mode, 0);
return fos;
} catch (FileNotFoundException e) {
}
File parent = f.getParentFile(); parent.mkdir(); FileUtils.setPermissions( parent.getPath(), FileUtils.S_IRWXU|FileUtils.S_IRWXG|FileUtils.S_IXOTH, -1, -1); FileOutputStream fos = new FileOutputStream(f, append); setFilePermissionsFromMode(f.getPath(), mode, 0); return fos;}
下面是具体的使用(借鉴:http://blog.csdn.net/janronehoo/article/details/6960137)
package demo.filerw.service;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import android.content.Context;
import android.os.Environment;
/**
* 文件操作类
* @author janrone
* @website http://hujl.sinaapp.com
*/
public class FileService {
private Context context; public FileService(Context context) { this.context = context; } //存储数据到文件 public void saveName(String name) throws Exception{ //context.getFilesDir();// 得到存放文件的系统目录 /data/data/<package name>/files //context.getCacheDir(); //缓存目录 /data/data/<package name>/cache FileOutputStream outputStream=context.openFileOutput("deomfilerw.txt", Context.MODE_APPEND); outputStream.write(name.getBytes()); outputStream.close(); } //存储数据到sdcard public void saveNameToSDCard(String name) throws Exception{ Environment.getExternalStorageDirectory(); //得到sdcard目录 File file=new File("/sdcard","demosdcard.txt"); FileOutputStream outputStream=new FileOutputStream(file); outputStream.write(name.getBytes()); outputStream.close(); } // 读取数据 public String getName() throws Exception{ FileInputStream inputStream=context.openFileInput("deomfilerw.txt"); ByteArrayOutputStream outStream=new ByteArrayOutputStream(); byte[] buffer=new byte[1024]; int len=0; while ((len=inputStream.read(buffer))!=-1){ outStream.write(buffer, 0, len); } outStream.close(); byte[] data=outStream.toByteArray(); String name=new String(data); return name; }
}
事件监听类可以放到外边
[java] view plaincopy
package demo.filerw.clicklistener;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import demo.filerw.R;
import demo.filerw.service.FileService;
public class ClickListener implements OnClickListener {
private FileService fileService; private EditText editText; private TextView show_text; private Context context; public ClickListener(Context context) { this.context=context; fileService = new FileService(context); Activity activity = (Activity) context; editText = (EditText) activity.findViewById(R.id.edit_name); show_text = (TextView) activity.findViewById(R.id.show_text); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.ok_button: String name=editText.getText().toString(); try { fileService.saveName(name); Toast.makeText(context, R.string.ok_succee, Toast.LENGTH_SHORT).show(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); //Toast.makeText(contex, R.string.ok_error, Toast.LENGTH_SHORT).show(); } break; case R.id.read_button: try { String name1 =fileService.getName(); show_text.setText(name1); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); Toast.makeText(context, R.string.read_error, Toast.LENGTH_SHORT).show(); } break; } }
}
Activity
[java] view plaincopy
package demo.filerw;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import demo.filerw.clicklistener.ClickListener;
public class FileRWActivity extends Activity {
private Button ok_button; private Button read_button; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ok_button = (Button) findViewById(R.id.ok_button); read_button = (Button) findViewById(R.id.read_button); ok_button.setOnClickListener(new ClickListener(this)); read_button.setOnClickListener(new ClickListener(this)); }
}
main.xml
[java] view plaincopy
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- [leetcode] Binary Tree Paths
- HDU 5401 Persistent Link/cut Tree
- 如何实现Siri中的波纹动画
- 利用Linux LiveCD迁移Windows到SSD硬盘
- 华为OJ平台试题 ——字符串:打印字符串中重复的字符
- 文章标题
- RT-Thread finsh源码分析: finsh_heap.h
- 2015 7 3 java核心技术卷一 7-10章 图形,事件处理,Swing组件和应用程序部署
- Linux下Sublime安装
- spmio内网源部署
- 【GDOI 2013模拟】总结
- JAVA中实现加法器
- HDU 5402 (构造题)Travelling Salesman Problem
- iOS学习(项目中遇到的错误1)