Android 笔记 文件存取 day5
针对文件的存取
 package com.example.file01;
 import com.example.service.FileService;
 import android.app.Activity;
 import android.os.Bundle;
 import android.view.*;
 import android.widget.*;
 public class MainActivity extends Activity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         Button button=(Button)this.findViewById(R.id.button1);
         button.setOnClickListener(new ButtonClickListener());
     }
     private class ButtonClickListener implements View.OnClickListener{
         @Override
         public void onClick(View v) {
             // TODO Auto-generated method stub
             EditText filename1=(EditText)findViewById(R.id.editText1);
             EditText content1=(EditText)findViewById(R.id.EditText01);
             String filename=filename1.getText().toString();
             String content=content1.getText().toString();
             FileService service=new FileService(getApplicationContext());
             try {
                 service.save(filename,content);
                 Toast.makeText(getApplicationContext(), "success", 1).show();
             } catch (Exception e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
                 Toast.makeText(getApplicationContext(), "fail", 1).show();
             }
         }
     }
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         // Inflate the menu; this adds items to the action bar if it is present.
         getMenuInflater().inflate(R.menu.main, menu);
         return true;
     }
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         // Handle action bar item clicks here. The action bar will
         // automatically handle clicks on the Home/Up button, so long
         // as you specify a parent activity in AndroidManifest.xml.
         int id = item.getItemId();
         if (id == R.id.action_settings) {
             return true;
         }
         return super.onOptionsItemSelected(item);
     }
 }
 package com.example.service;
 import java.io.ByteArrayOutputStream;
 import java.io.*;
 import java.io.FileOutputStream;
 import android.content.Context;
 public class FileService {
     private Context context;
     public FileService(Context context) {
         this.context = context;
     }
     /**
      * 保存文件
      * @param filename    文件名
      * @param content    文件内容
      */
     public void save(String filename, String content)throws Exception {
         // TODO Auto-generated method stub
         FileOutputStream outStream=context.openFileOutput(filename, Context.MODE_PRIVATE);
         outStream.write(content.getBytes());
         outStream.close();
     }
     /**
      *
      * @param filename
      * @return
      * @throws Exception
      */
     public String read(String filename)throws Exception {
         FileInputStream inStream=context.openFileInput(filename);
         ByteArrayOutputStream outStream=new ByteArrayOutputStream();
         byte[]    buffer =new byte [1024];
         int len=0;
         while((len=inStream.read(buffer))!=-1){
             outStream.write(buffer,0,len);
         }
         byte[] date=outStream.toByteArray();
         return new String(date);
     }
 }
测试,需要添加一些东西
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.example.file01"
     android:versionCode="1"
     android:versionName="1.0" >
     <uses-sdk
         android:minSdkVersion="19"
         android:targetSdkVersion="19" />
     <application
         android:allowBackup="true"
         android:icon="@drawable/ic_launcher"
         android:label="@string/app_name"
         android:theme="@style/AppTheme" >
         <uses-library android:name="android.test.runner" />
         <activity
             android:name=".MainActivity"
             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>
         <instrumentation
         android:name="android.test.InstrumentationTestRunner"
         android:targetPackage="com.example.file01" />
 </manifest>
测试用代码
 package com.example.test;
 import com.example.service.FileService;
 import android.test.AndroidTestCase;
 import android.util.Log;
 public class testfileread extends AndroidTestCase {
     private static final String TAG="wang.txt";
         public void testread() throws Throwable{
             FileService service =new FileService(this.getContext());
             String s=service.read("wang.txt");
             Log.i(TAG, s);
         }
 }
Android 笔记 文件存取 day5的更多相关文章
- Android笔记——Android中数据的存储方式(二)
		
我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效 ...
 - Android笔记:触摸事件的分析与总结----TouchEvent处理机制
		
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://glblong.blog.51cto.com/3058613/1559320 ...
 - Python学习笔记,day5
		
Python学习笔记,day5 一.time & datetime模块 import本质为将要导入的模块,先解释一遍 #_*_coding:utf-8_*_ __author__ = 'Ale ...
 - Android 笔记之 R 文件
		
Android笔记之R文件 h2{ color: #4abcde; } a{ color: blue; text-decoration: none; } a:hover{ color: red; te ...
 - Android 笔记之 Android 系统架构
		
Android笔记之Android系统架构 h2{ color: #4abcde; } a{ color: blue; text-decoration: none; } a:hover{ color: ...
 - 《从零开始学Swift》学习笔记(Day5)——我所知道的标识符和关键字
		
Swift 2.0学习笔记(Day5)——我所知道的标识符和关键字 原创文章,欢迎转载.转载请注明:关东升的博客 好多计算机语言都有标识符和关键字,一直没有好好的总结,就是这样的用着,现在小小的整 ...
 - Android笔记之使用Glide加载网络图片、下载图片
		
Glide简介 不想说太多,真的很方便:P)可以节省我不少时间 GitHub地址:https://github.com/bumptech/glide 加载网络图片到ImageView Glide.wi ...
 - Android笔记--View绘制流程源码分析(二)
		
Android笔记--View绘制流程源码分析二 通过上一篇View绘制流程源码分析一可以知晓整个绘制流程之前,在activity启动过程中: Window的建立(activit.attach生成), ...
 - Android笔记--View绘制流程源码分析(一)
		
Android笔记--View绘制流程源码分析 View绘制之前框架流程分析 View绘制的分析始终是离不开Activity及其内部的Window的.在Activity的源码启动流程中,一并包含 着A ...
 
随机推荐
- mysql复习相关
			
Mysql相关 mysql增删改查 我们需要修改数据表名或者修改数据表字段时,就需要使用到Mysql Alter命令 删除,添加或修改表字段 alter table student drop regi ...
 - php sleep
			
实例一:把时间输出十次,但全部有结果了,才在html浏览器页面输出 ;$i<;$i++){ echo time()."<br>"; sleep(); } echo ...
 - Parse Fatal Error at line 4 column 43: 已经为元素 "web-app" 指定属性 "xmlns"。
			
打开web.xml;最上面的web-app里面,看有没有重复的,重点关注xmlns="http://java.sun.com/xml/ns/javaee" ,如果重复,删去就好~~ ...
 - TCP学习之二:客户端与服务端的连接
			
主要参考张子阳大神的博客:http://www.cnblogs.com/JimmyZhang/category/101698.html TcpClient是对Socket的封装 一个TcpClient ...
 - 浅谈C++之冒泡排序、希尔排序、快速排序、插入排序、堆排序、基数排序性能对比分析之后续补充说明(有图有真相)
			
如果你觉得我的有些话有点唐突,你不理解可以想看看前一篇<C++之冒泡排序.希尔排序.快速排序.插入排序.堆排序.基数排序性能对比分析>. 这几天闲着没事就写了一篇<C++之冒泡排序. ...
 - Yii2 assets注册的css样式文件没有加载
			
准备引入layui.css文件的,在LayuiAssets类中已经配置了资源属性 <?php namespace frontend\assets; use yii\web\AssetBundle ...
 - shell脚本重新挂载出问题的卷
			
#!/bin/bash#卷的全路径示例#pathexample =mount -t cetusfs 127.0.0.1:/cinderv/var/lib/cinder/volumes/0f6a20f4 ...
 - SQL Server  积累
			
2016-11-24 sql语句修改某表某字段的数据类型和字段长度: 问题是在修改老功能中暴露出来的,我修改了图片上传功能,结果报图片路径超出数据库字段规定长度,我检查数据库后发现之前设计数据库的人将 ...
 - iOS中为什么block用copy属性
			
1. Block的声明和线程安全Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中,栈中的Block的生命周期是和栈绑定的,可以参考之前的文章(iOS: 非ARC ...
 - test1.xlsx
			
耿丹CS16-2班第三次作业汇总 排名 学号后三位 姓名 作业顺序 作业情况 第三周博客 总得分 博客园地址 1 232 周* 1 8.5 3 12.5 http://www.cnblogs.com/ ...