Android文档编辑器
2015-05-28 16:16
288 查看
Android文档编辑器
转自:http://www.cnblogs.com/Eaway/archive/2012/02/12/2348298.html
本文主要是学习Android开发如何保存文件;
分别有三种保存方式:
第一种方式:以私有方式保存文件;本方式保存的文件其他程序无法读和写;点击按钮“私有保存”
调用:context.openFileOutput(filename, Context.MODE_PRIVATE);
Context.MODE_PRIVATE决定了以私有方式保存文件。
第二种方式:常规方式保存文件;本方式保存的文件其他程序可读、可写;点击按钮“常规保存”
调用:context.openFileOutput(filename, Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);
Context.MODE_WORLD_READABLE使得其他程序可读该文件,Context.MODE_WORLD_WRITEABLE使得其他程序可写该文件。
第三种方式:将文件保存到sdcard;
调用Environment.getExternalStorageDirectory()读取Android中sdcard的路径
新建项目File,在包com.shen.learning.shen.android中写文件FileActivity;
FileActivity代码如下:
在包com.shen.learning.service中新建文件:FileService
FileService代码如下:
在values文件夹中编辑文件string.xml。
string.xml代码如下:
在layout文件夹中编辑文件main.xml
main.xml代码如下:
修改AndroidManifest.xml
AndroidManifest.xml代码如下:
效果:
转自:http://www.cnblogs.com/Eaway/archive/2012/02/12/2348298.html
本文主要是学习Android开发如何保存文件;
分别有三种保存方式:
第一种方式:以私有方式保存文件;本方式保存的文件其他程序无法读和写;点击按钮“私有保存”
调用:context.openFileOutput(filename, Context.MODE_PRIVATE);
Context.MODE_PRIVATE决定了以私有方式保存文件。
第二种方式:常规方式保存文件;本方式保存的文件其他程序可读、可写;点击按钮“常规保存”
调用:context.openFileOutput(filename, Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);
Context.MODE_WORLD_READABLE使得其他程序可读该文件,Context.MODE_WORLD_WRITEABLE使得其他程序可写该文件。
第三种方式:将文件保存到sdcard;
调用Environment.getExternalStorageDirectory()读取Android中sdcard的路径
新建项目File,在包com.shen.learning.shen.android中写文件FileActivity;
FileActivity代码如下:
package com.shen.learning.android; import com.shen.learning.service.FileService; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class FileActivity extends Activity { private static final String TAG = "FileActivity"; private FileService fileService; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); fileService = new FileService(this); //第一个按钮:私有保存,调用save方法 Button button = (Button) this.findViewById(R.id.button);//初始化按钮 button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //取得文件名称 EditText filenameText = (EditText) findViewById(R.id.filename); String filename = filenameText.getText().toString(); //取得文本内容 EditText contentText = (EditText) findViewById(R.id.filecontent); String content = contentText.getText().toString(); try { fileService.save(filename, content); //显示“文件保存成功” Toast.makeText(FileActivity.this, R.string.success, 1).show(); }catch (Exception e) { //在LogCat显示错误信息 Log.e(TAG,e.toString()); //显示“文件保存失败” Toast.makeText(FileActivity.this, R.string.error, 1).show(); } } }); //第二个按钮:常规保存,调用saveOpening方法 Button button2 = (Button) this.findViewById(R.id.button2); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //取得文件名称 EditText filenameText = (EditText) findViewById(R.id.filename); String filename = filenameText.getText().toString(); //取得文本内容 EditText contentText = (EditText) findViewById(R.id.filecontent); String content = contentText.getText().toString(); try{ fileService.saveOpening(filename, content); //显示“文件保存成功” Toast.makeText(FileActivity.this, R.string.success, 1).show(); }catch (Exception e) { //在LogCat显示错误信息 Log.e(TAG,e.toString()); //显示“文件保存失败” Toast.makeText(FileActivity.this, R.string.error, 1).show(); } } }); //第三个按钮:sdcard保存,调用saveToSdcard方法 Button button3 = (Button) this.findViewById(R.id.button3); button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //取得文件名称 EditText filenameText = (EditText)findViewById(R.id.filename); String filename = filenameText.getText().toString(); //取得文本内容 EditText contentText = (EditText)findViewById(R.id.filecontent); String filecontent = contentText.getText().toString(); try{ if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ fileService.saveToSdcard(filename, filecontent); //显示“文件保存成功” Toast.makeText(FileActivity.this, R.string.success, 1).show(); }else{ //显示“不存在sdcard或无写入sdcard权限” Toast.makeText(FileActivity.this, R.string.sdcarderror, 1).show(); } }catch (Exception e) { //在LogCat显示错误信息 Log.e(TAG, e.toString()); //显示“文件保存失败” Toast.makeText(FileActivity.this, R.string.error, 1).show(); } } }); } }
在包com.shen.learning.service中新建文件:FileService
FileService代码如下:
package com.shen.learning.service; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.nio.Buffer; import android.content.Context; import android.os.Environment; public class 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{ filename=filename+".txt"; FileOutputStream outputStream=context.openFileOutput(filename, Context.MODE_PRIVATE);//以私有方式保存文件 //FileOutputStream outputStream=context.openFileOutput(filename, Context.MODE_APPEND);//以追加方式保存文件 outputStream.write(content.getBytes()); outputStream.close(); } /** * 以其他程序可读写文件形式保存内容 * @param filename * @param content * @throws Exception */ public void saveOpening(String filename,String content)throws Exception{ filename=filename+".txt"; //FileOutputStream outputStream=context.openFileOutput(filename, context.MODE_WORLD_READABLE);//以其他程序可读形式保存内容 //FileOutputStream outputStream=context.openFileOutput(filename, context.MODE_WORLD_WRITEABLE);//以其他程序可写形式保存内容 FileOutputStream outputStream=context.openFileOutput(filename, Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);//可读+可写 outputStream.write(content.getBytes()); outputStream.close(); } /** * 将文件保存到sdcard * @param filename * @param content * @throws Exception */ public void saveToSdcard(String filename,String content)throws Exception{ filename=filename+".txt"; //Environment.getExternalStorageDirectory()为读取Android中sdcard的路径 File file=new File(Environment.getExternalStorageDirectory(),filename);//定路径;将文件保存到sdcard FileOutputStream outputStream = new FileOutputStream(file); outputStream.write(content.getBytes()); outputStream.close(); } }
在values文件夹中编辑文件string.xml。
string.xml代码如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, FileActivity!</string> <string name="app_name">文件操作</string> <string name="filename">文件名称</string> <string name="filecontent">请输入文件内容</string> <string name="button">私有保存</string> <string name="button2">可读写保存</string> <string name="button3">sdcard保存</string> <string name="success">文件保存成功</string> <string name="error">文件保存失败</string> <span style="white-space:pre"> </span><string name="sdcarderror">不存在sdcard或无写入sdcard权限</string> </resources>
在layout文件夹中编辑文件main.xml
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="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/filecontent" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:minLines="7" android:id="@+id/filecontent" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button" android:text="@string/button" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button2" android:text="@string/button2" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button3" android:text="@string/button3" /> </LinearLayout>
修改AndroidManifest.xml
AndroidManifest.xml代码如下:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.shen.learning.android" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="9" /> <!-- 获取sdcard的读权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 获取sdcard的写权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".FileActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
效果:
相关文章推荐
- Android Studio官方文档之使用布局编辑器来设计UI界面
- Android Studio官方文档之使用主题编辑器来设计App主题
- Android Studio官方文档之使用翻译编辑器本地化UI
- Android解析Excel文档完整示例
- Android2.2 API 中文文档系列(5) —— View
- 为android游戏开发-准备的地图编辑器-初步刷地图
- android 在UI线程之外处理Bitmap - 开发文档翻译
- Android英文文档翻译系列(6)——LocalBroadcastManager
- Android读写XML(下)——创建XML文档
- Android官方入门文档[3]构建一个简单的用户界面
- android获得用户位置(Obtaining User Location) android文档翻译
- Android Web App官方文档翻译第四章:调试
- Android编程实现的短信编辑器功能示例
- MarkDown 书写 接口文档(Haroopad 编辑器)
- Android开发帮助文档Doc打开速度慢解决_Python篇
- Android官方开发文档Training系列课程中文版:如何避免ANR?
- React Native for Android 官方文档中文版(最新)
- android 官方文档 JNI TIPS
- Android2.2 API 中文文档系列(3) —— AccessibilityService
- android 中文文档