新建一个Android工程。


一 布局
先看效果图:


打开main.xml修改内容如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent">    <TextView android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="@string/filename" />    <EditText android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:id="@+id/filename" />    <TextView android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="@string/file_content" />    <EditText android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:minLines="3"        android:id="@+id/save_file_content" />    <Button android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/button_save"        android:id="@+id/button_save"/>    <Button android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/button_read"        android:id="@+id/button_read"/>    <EditText android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:minLines="3"        android:id="@+id/read_file_content" /></LinearLayout>

二 定义字符串
打开strings.xml添加内容如下:

<resources>    <string name="app_name">File</string>    <string name="action_settings">Settings</string>    <string name="filename">文件名称</string>    <string name="file_content">文件内容</string>    <string name="button_save">保存</string>    <string name="save_success">保存成功</string>    <string name="save_fail">保存失败</string>    <string name="button_read">读取</string>    <string name="read_success">读取成功</string>    <string name="read_fail">读取失败</string></resources>

三 功能实现
新建一个类FileService,用于文件的读写,完整代码如下:

public class FileService {    public Context context;       public  FileService(Context context){           this.context = context;       }    /**     * 保存字符串到文件     * @param name 文件名     * @param content 文件内容     */    public void save(String name, String content) throws Exception{        // MODE_PRIVATE 创建出来的文件,仅能被本应用访问,而且新写入的内容会覆盖原来的内容         FileOutputStream os = context.openFileOutput(name, Context.MODE_PRIVATE);        // 默认保存在/data/data/<package_name>/files目录        os.write(content.getBytes());        os.close();    }    /***     * 读取文件内容     * @param name 文件名     * @return     * @throws Exception     */    public String read(String name) throws  Exception{        FileInputStream is = context.openFileInput(name);        ByteArrayOutputStream os = new ByteArrayOutputStream();        byte[] buf = new byte[1024];        int len = 0;        while( (len = is.read(buf)) != -1){            os.write(buf,0, len);        }        byte[] data = os.toByteArray();        String content = new String(data);        return  content;    }}

四 测试代码
修改MainActivity.java代码如下:

    public EditText nameText;    public EditText saveContentText;    public EditText readContentText;    public Button button_read;    public String filename;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        nameText = (EditText)this.findViewById(R.id.filename);        saveContentText = (EditText)this.findViewById(R.id.save_file_content);        readContentText = (EditText)this.findViewById(R.id.read_file_content);        Button button_save = (Button) this.findViewById(R.id.button_save);        button_save.setOnClickListener(new ButtonSaveClickListener());        button_read = (Button) this.findViewById(R.id.button_read);        button_read.setClickable(false);        button_read.setOnClickListener(new ButtonReadClickListener());    }    private final class ButtonSaveClickListener implements View.OnClickListener{        public void onClick(View v){            String name = nameText.getText().toString();            String content = saveContentText.getText().toString();            FileService service = new FileService(getApplicationContext());            try {                filename = name;                service.save(name, content);                filename = name;                button_read.setClickable(true);                Toast.makeText(getApplicationContext(),R.string.save_success, Toast.LENGTH_LONG).show();            }catch (Exception e){                Toast.makeText(getApplicationContext(),R.string.save_fail, Toast.LENGTH_LONG).show();                e.printStackTrace();            }        }    }    private final class ButtonReadClickListener implements View.OnClickListener{        public void onClick(View v){            FileService service = new FileService(getApplicationContext());            try {                String content = service.read(filename);                readContentText.setText(content);                Toast.makeText(getApplicationContext(),R.string.read_success, Toast.LENGTH_LONG).show();            }catch (Exception e){                Toast.makeText(getApplicationContext(),R.string.read_fail, Toast.LENGTH_LONG).show();                e.printStackTrace();            }        }    }

运行结果如图:



更多相关文章

  1. android studio 将一个android项目当做另外一个android项目的lib
  2. android 文件的认识
  3. 关于 android:windowSoftInputMode 的设置
  4. Android(安卓)中NavigationView的使用
  5. Gradle设置代码混淆
  6. linux 下 使用shell 控制ant批量打包
  7. Android注册界面设计
  8. Android(安卓)Studio中统一管理版本号引用配置
  9. Android改包1

随机推荐

  1. android添加广告之--admob
  2. 四、[Android(安卓)UI界面] android继承
  3. Android(安卓)| class | tree
  4. android访问网络图片
  5. android SlidingDrawer 源码
  6. Android(安卓)debugging using Lauterbac
  7. Eclipse 开发 Android, LinearLayout (学
  8. HttpURLConnection和HttpClient使用
  9. Android获取手机内存
  10. Android(安卓)xml解析实例详解