android之旅——开始

1、文件的读取

io流读取文件,并且显示

package com.helloword;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

public class ReadFile {
	private String text = null;
	private StringBuffer strbuf=null;

	public void ReadFile(File file)  {
		// TODO Auto-generated constructor stub
		//获取文件输出流
		FileInputStream fis;
		try {
			fis = new FileInputStream(file);
			//将字节流转换为字符流
			BufferedReader br = new BufferedReader(new InputStreamReader(fis));
			try {
				text = br.readLine();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		strbuf.append(text);

		System.out.println(text);
	}

}

  其中访问android的"data/data/com.helloword/file"建立过程如下

  打开file explore,即可看到Android 的文件

  打开cmd,进入sdk platform-tool

  >adb shell
  $ su
  # chmod 777 /data

  # chmod 777 /data/data

public class MainActivity extends Activity {
public Button bt =null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt = (Button) findViewById(R.id.btcon);
bt.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
File file = new File("data/data/com.helloword/file");
ReadFile readfile = new ReadFile();
}
});
}

  

2、SD卡文件的读写操作

  (1)在manifest.xml中注册,获得SD卡的读写权限
 <!-- SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 向SDCard写入数据权限 -->
 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

  (2) 接着在使用SDcard进行读写的时候 会用到Environment类下面的几个静态方法  :

   1: getDataDirectory() 获取到Android中的data数据目录(sd卡中的data文件夹)
      2:getDownloadCacheDirectory() 获取到下载的缓存目录(sd卡中的download文件夹)
      3:getExternalStorageDirectory() 获取到外部存储的目录 一般指SDcard(/storage/sdcard0)
      4:getExternalStorageState() 获取外部设置的当前状态 一般指SDcard,比较常用的应该是 MEDIA_MOUNTED(SDcard存在并且可以进行读写)还有其他的一些状态,可以在文档中进行查找.

	/**
	 * 判断SDCard是否存在 [当没有外挂SD卡时,内置ROM也被识别为存在sd卡]
	 *
	 * @return
	 */
	public static boolean isSdCardExist() {
		return Environment.getExternalStorageState().equals(
				Environment.MEDIA_MOUNTED);
	}

  

* 使用api获得sd卡的真实路径,部分手机品牌会更改sd卡的路径

Environment.getExternalStorageDirectory();

读取SD卡的内容

  

//读取SD卡内容
	//使用FileInputStream读取文件
	public String ReadFlieInputString(String FileName) throws IOException
	{
		String result = null;
		File file = new File(FileName);
		try {
			FileInputStream isfile = new FileInputStream(file);
			byte[] b = new byte[isfile.available()];
			isfile.read(b);
			result = new String(b);
			System.out.print("读取成功:"+ result);

		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return result;
	}

	//使用BufferRead 读取文件
	public String FileBufferRead(String FileName) throws IOException {
		String result = null;
		try {
			BufferedReader bReader = new BufferedReader(new FileReader(FileName));
			String oneline = "";
			StringBuffer sb = new  StringBuffer();
			while ((oneline = bReader.readLine()) != null) {
				sb.append(oneline);
			}
			result = sb.toString();
			bReader.close();
			System.out.println("读取成功");

		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return result;

	}

  向SD卡中写入文件

//写入SD卡
	//使用FileOutputStream写入文件
	public Boolean writeSDFile(String FileName, String content){
		boolean result = false;
		try {
			File file = new File(Environment.getExternalStorageDirectory(), FileName);
			//获得输出流
	        FileOutputStream fos = new FileOutputStream(file);
            fos.write(content.getBytes());
            fos.close();
			System.out.println("写入成功:");
			result = true;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}

	//使用buffread写入SD卡
	public Boolean BufferWriteFile(String FileName, String content){
		boolean result = false;
		try {
			File file = new File(Environment.getExternalStorageDirectory(),
					FileName);
			//第二个参数意义是说是否以append方式添加内容
			BufferedWriter bw = new BufferedWriter(new FileWriter(file, true));
			bw.write(content);
			bw.flush();
			System.out.println("写入成功");
                        result = true;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}

  以上内容纯属自己练着玩!基本都是参照http://blog.csdn.net/mad1989/article/details/37568667

时间: 2024-10-08 23:51:44

android之旅——开始的相关文章

老罗的Android之旅

Android应用程序与SurfaceFlinger服务的关系概述和学习计划 Android应用程序窗口(Activity)实现框架简要介绍和学习计划 1. Android应用程序窗口的运行上下文的创建过程,即创建ContextImpl的创建过程: 2. Android应用程序窗口的创建过程,即PhoneWindow的创建过程: 3. Android应用程序窗口的视图的创建过程,即DecorView的创建过程: 4. Android应用程序窗口与WindowManagerService服务的连接

Android之旅十五 android中的网络操作

android中的网络操作和java里面没有什么区别,java里面的很多网络操作方法都可以搬到android中去使用,主要几个点: 1.post和get请求的区别,大家可以在网上查阅有关资料进行了解,get主要以向地址中拼接字符串参数发送到服务器,长度有限制,并且请求参数暴露在地址栏中,不怎么安全:post则主要是将请求参数转换为相应的http协议请求体发送到服务器,相比get方式,参数的长度没有限制,并且参数信息不会暴露给用户: 2.我们在java web里面通过浏览器以post方式发送数据,

Android测试之旅之JUnit(二)

开始 通过Android测试之旅之JUnit(一)的学习,我们对JUnit的知识有了初步的认识.聪明的你是不是发现其实并没有你想象的那么难呢?这章我们继续来瞅瞅JUnit还有什么好玩的.今天我们用一个简单的例子给大家进行展示,方便更好的理解. Parameterized 我们先来看下面一个待测试类PrettyTest: public class PrettyTest { /** * 根据输入值的大小返回字符串 * @param a 输入值 * @return 返回的字符串结果 */ public

Android之旅十六 android中各种资源的使用

android中各种资源的使用: 在android开发中,各种资源的合理使用应该在各自的xml中进行定义,以便重复使用; 字符串资源:strings.xml,xml中引用:@string/XXX,java代码中引用:R.string.XXX 样式资源:styles.xml,xml中引用:@style/XXX,java代码中引用:R.style.XXX 图片资源:colors.xml,xml中引用:@color/XXX,java代码中引用:R.color.XXX 尺寸资源:dimens.xml,x

我的Android之旅——学习、项目、心态

本文作者: 伯乐在线 - 唐韧 .未经许可,禁止转载!欢迎分享原创到伯乐头条. 来源:唐韧 学习Android也一年多了,项目做了五六个,有大有小,有难有易.一直以来都没有好好总结过,今天周六休息,就写下这一年多从事Android以来的一些感想和小经验.涉及学习.项目和一些个人感受. 1.学习篇 我是从11年5月份开始接触并学习Android的,在那之前有过一年的J2EE的经验,做过三个J2EE的项目,从08年开始接触Java,所以到去年学习Android时,开发语言上我还是比较熟悉的,这也成了

开启我的Android之旅-----记录Android环境搭建遇到的问题

在现在这个离不开手机的时代,对于手机APP的开发也是一个很大的市场,所以自己也想去探一探手机APP开发,在我们进行Android开发的第一步就是搭建环境,具体怎么搭建我就不说,这里记录一下在搭建环境的过程中遇到的一些问题,来帮助遇到相同问题的童鞋. 1.点击安卓模拟器就会出现一个错误消息:Location of the Android SDK has not been setup in the preferences 解决办法: 打开系统属性-->环境变量—>在“系统变量”那一个GroupBo

Android之旅十八 百度地图环境搭建

在android中使用百度地图,我们可以先看看百度地图相应的SDK信息:http://developer.baidu.com/map/index.php?title=androidsdk,它里面基本上有关于android中的所有配置.api调用等操作方法,下面我们来看看百度地图在android中环境的搭建步骤:我们这里使用的百度地图版本为 Android SDK v3.1.1,版本不同,里面的API可能不一样,所以希望大家能够注意!! 一.申请密钥,无论是开发谷歌地图还是百度地图我们都需要申请密

Android之旅十四 android中的xml文件解析

在我们做有关android项目的时候,肯定会涉及到对xml文件的解析操作.以下给大家介绍一下xml文件的解析.包括DOM.SAX.Pull以及曾经我们用到的DOM4J和JDOM: 要解析的XML文件:person.xml <? xml version="1.0" encoding="UTF-8"? > <persons> <person id="001"> <name>zhangsan</na

Android之旅---广播(BroadCast)

什么是广播 在Android中.Broadcast是一种广泛运用的在应用程序之间传输信息的机制. 我们拿广播电台来做个例如. 我们寻常使用收音机收音是这种:许很多多不同的广播电台通过特定的频率来发送他们的内容.而我们用户仅仅须要将频率调成和广播电台的一样就能够收听他们的内容了.Android中的广播机制就和这个差点儿相同的道理. 电台发送的内容是语音,而在Android中我们要发送的广播内容是一个Intent.这个Intent中能够携带我们要传送的数据. 电台通过大功率的发射器发送内容,而在An

Android之旅---广播(BroadCast)[转]

本文转自 http://www.cnblogs.com/qianlifeng/archive/2011/03/06/1972305.html 什么是广播 在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制.我们拿广播电台来做个比方.我们平常使用收音机收音是这样的:许许多多不同的广播电台通过特定的频率来发送他们的内容,而我们用户只需要将频率调成和广播电台的一样就可以收听他们的内容了.Android中的广播机制就和这个差不多的道理. 电台发送的内容是语音,而在Andr