public class DataActivity extends Activity {
private EditText filenameText;
private EditText contentText;
private TextView resultView;
private static final String TAG = "DataActivity";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
filenameText = (EditText) this.findViewById(R.id.filename);
contentText = (EditText) this.findViewById(R.id.content);
resultView = (TextView) this.findViewById(R.id.result);
String filename = filenameText.getText().toString();
Button button = (Button) this.findViewById(R.id.button);
Button showButton = (Button) this.findViewById(R.id.showButton);
button.setOnClickListener(listener);
showButton.setOnClickListener(listener);
} private View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
Button button = (Button) v;
String filename = filenameText.getText().toString();
switch(button.getId()){
case R.id.button://如果是保存按钮
int resId = R.string.success; String content = contentText.getText().toString();
File file = new File(Environment.getExternalStorageDirectory(),filename);
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
try {
//OutputStream outStream = DataActivity.this.openFileOutput(filename, Context.MODE_WORLD_WRITEABLE+Context.MODE_WORLD_READABLE);
//四中操作模式
//Context.MODE_PRIVATE=0 覆盖、私有
//Context.MODE_APPEND=32768追加、私有
//Context.MODE_WORLD_READABLE=1其他的程序可以访问
//Context.MODE_WORLD_WRITEABLE=2
//Environment.getExternalStorageDirectory()==new file("/sdcard") FileOutputStream outStream = new FileOutputStream(file);
try {
FileService.save(outStream, content);
} catch (Exception e) {
Log.e(TAG, e.toString());
resId = R.string.error;
}
} catch (FileNotFoundException e) {
Log.e(TAG, e.toString());
resId = R.string.error;
}
Toast.makeText(DataActivity.this, resId, Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(DataActivity.this,"SD卡不存在或者写保护", Toast.LENGTH_LONG).show();
}
break;
case R.id.showButton://如果是显示按钮
try {
InputStream inStream = DataActivity.this.openFileInput(filename);
String text = FileService.read(inStream);
resultView.setText(text);
} catch (Exception e) {
Log.e(TAG, e.toString());
resId = R.string.error;
Toast.makeText(DataActivity.this, "读取失败", Toast.LENGTH_LONG).show();
} break;
}
}
}; }

  

Android往SD卡上存储文件的更多相关文章

  1. android 操作SD卡上的文件

    (1)说明:操作SD卡上的文件须要增加下面权限  在SD卡上创建和删除文件权限  <uses-permission android:name="android.permission.M ...

  2. android学习笔记47——读写SD卡上的文件

    读写SD卡上的文件 通过Context的openFileInput.openFileOutput来打开文件输入流.输出流时,程序打开的都是应用程序的数据文件夹里的文件,其存储的文件大小可能都比较有限- ...

  3. Android开发之SD卡上文件操作

    1. 得到存储设备的目录:/SDCARD(一般情况下) SDPATH=Environment.getExternalStorageDirectory()+"/"; 2. 判断SD卡 ...

  4. Android权限安全(12)apk安装在sd卡上时,如何保证数据安全

    apk安装在sd卡上时,如果把sd卡拿下安在另一个手机B上,那么apk的数据就可以被B里的恶意应用访问了. 下面是android解决这个问题的方案: 绑定设备 1,绑定perDevice使得应用以及应 ...

  5. Android全屏截图的方法,返回Bitmap并且保存在SD卡上

    Android全屏截图的方法,返回Bitmap并且保存在SD卡上 今天做分享,需求是截图分享,做了也是一个运动类的产品,那好,我们就直接开始做,考虑了一下,因为是全屏的分享,所有很自然而然的想到了Vi ...

  6. Android使用sqlliteOpenhelper更改数据库的存储路径放到SD卡上

    假设使用默认的系统管理,默认放在包以下.比較省心.并且在卸载app后不会造成数据残留.可是这样也有一个问题.比方我做一个背单词的软件,那么当用户卸载掉这个app时,他辛辛苦苦下载的单词库也没了... ...

  7. android中读取SD卡上的数据

    通过Context的openFileInput或者openFileOutput打开的文件输入输出流是操作应用程序的数据文件夹里的文件,这样存储的大小比较有限,为了更好的存取应用程序的大文件数据,应用程 ...

  8. Android SD卡上文件

    1. 得到存储设备的目录:/SDCARD(一般情况下) SDPATH=Environment.getExternalStorageDirectory()+"/"; 2. 判断SD卡 ...

  9. Android读写SD卡

    SD卡的读写是我们在开发Android 应用程序过程中最常见的操作.下面介绍SD卡的读写操作方式: 1. 获取SD卡的根目录 String sdCardRoot = Environment.getEx ...

随机推荐

  1. [CareerCup] 14.2 Try-catch-finally Java中的异常处理

    14.2 In Java, does the finally block get executed if we insert a return statement inside the try blo ...

  2. GDB代码调试与使用

    GDB代码调试与使用 Linux下GDB调试代码 源代码 编译生成执行文件 gcc -g test.c -o test 使用GDB调试 启动GDB:gdb test 从第一行列出源代码:list 直接 ...

  3. silverlight 双击事件

    silverlight的一些功能真让我感到惊奇 就拿双击事件来说一下 写一个简单的例子 <StackPanel x:Name="st_De" MouseLeftButtonD ...

  4. WPF 得到子指定元素方法和得到指定子元素集合方法MvvM得到焦点

    public class UIHelper { /// <summary> /// 在Visual里找到想要的元素 /// childName可为空,不为空就按名字找 /// </s ...

  5. STM32的USB速度,终于确定了传输极限,为以后的产品设计提供了数据。

    是自定协议,用到一个bulk in ep1, 一个bulk out ep2 端点  用虚拟串口的优点显而易见,上位机的编写非常方便,就按照常规的串口功能编写就可以了,而速度确还是usb的速度  USB ...

  6. ASP.NET MVC5 插件化机制简单实现

    一.前言 nopCommerce的插件机制的核心是使用BuildManager.AddReferencedAssembly将使用Assembly.Load加载的插件程序集添加到应用程序域的引用中.具体 ...

  7. php模式设计之 适配器模式

    在这个有没有对象都要高呼“面向对象”的年代,掌握面向对象会给我们带来意想不到的方便.学编程的小伙伴从开始能写几行代码实现简单功能到后来懂得将一些重复的操作组合起来形成一个“函数”,再到后来将“函数”和 ...

  8. 老爷车IE8如何兼容图标字体

    前言 首先这个标题再详细的说就是如何解决font-face在IE8下间歇性出现图标字体渲染失败的解决方案. 如果你还不知道什么是图标字体,可以先阅读:链接1,链接2,链接3 先看在IE8下的问题: 而 ...

  9. 细说 Web API参数绑定和模型绑定

    今天跟大家分享下在Asp.NET Web API中Controller是如何解析从客户端传递过来的数据,然后赋值给Controller的参数的,也就是参数绑定和模型绑定. Web API参数绑定就是简 ...

  10. 【转】】CTO、技术总监、首席架构师的区别

    经常有创业公司老板来拜访我,常常会拜托给我一句话:帮我找一个CTO. 我解释的多了,所以想把这个写下来,看看你到底需要的应该是啥. 一.高级程序员 如果你是一个刚刚创业的公司,公司没有专职产品经理和项 ...