`
h121baby
  • 浏览: 6046 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android 文件IO操作

阅读更多

最近在Android的学习中,经常用到文件的IO操作,今天就简单的总结一下

首先是File类的概念

File类给我的感觉就是文件夹的管理,涉及文件的目录,长度和文件的读写权限等操作,不涉及文件的读写操作。可以联想下我们电脑的上的文件管理。一般要新建一个文件都是方法某个文件夹下的,搜索某个文件的的时候,一般都有路径,如G:\11game\11Game.exe。应此在读写文件前需要给文件定位。

如何操作呢?

想想平时,第一步,要新建一个文件夹,在某个目录下,java的代码中是这样写的

File file=new File(“文件的目录路径”);

file.mkdir();

有了目录以后,就可以创建文件了

定义文件的名称,记得要带后缀名

File file=new File(“文件的目录+文件的名称”);

file.createNewFile();

新建完成

如果直接不新建目录就执行上一步,就会抛出异常

这里主要路径的写法  一般在Window  都是E://sime/ 这样的写法 反斜杠,在Android开发中都是斜杠,但是在Android中, File dir=Environment.getExternalStorageDirectory();方法来获路径这样最好。

然后在  File  file=new File(dir,”sime.txt”);

常用的方法有  exists(检查文件是否存在)delete(删除文件)

 

在给文件准确的定位后,就可以对其进行读写操作了

读写之前别忘了加入读写权限咯

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>"
 

Java对文件的读写有两种,分别是字节流和字符流

字节流抽象类有字节输入流 InputStream和字节输出流OutputStream

一般初学者会这样认为,Input输入就是写入,Output输出就是读取。但是现实正好相反

要从内存的角度来思考,流的操作都是在内存中操作的。(其实我也不是怎么理解--会用就行)

抽象类是不能实例化的,在实际的开发中我们用的都是其子类

字符流对应的是Reader类和Writer(这个好像就符合常规逻辑了)

 

首先介绍的文件字节流的使用

如果需要以字节为单位去读取写入文件,就可以使这个,下面是构造方法

FileInputStream(String name);

FileInputStream(File file);

FileOutputStream(String name)

FileInputStream(File file);

//我都建议用第二中构造方法,这样代码更规范化

上代码

    //文件字节输入流

private void FileInputStreamdome(File file)
{
       try {
              FileInputStream in=new FileInputStream(file);
              int date=0;
              String msg="";
              while((date=in.read())!=-1)
              {
                     msg+=(char)date;
              }
              in.close();
              setTextView(msg);
       } catch (Exception e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
       }
 
      
      
}
   //文件字节输出流
private void FileOutpurStreamdome(File file)
{
       try {
              FileOutputStream out=new FileOutputStream(file);
              byte [] a="sime的测试".getBytes();     
              out.write(a,0,a.length);
              out.close();
             
       } catch (Exception e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
       }
 

     



乱码!!!!如何解决呢?

加上一句就好

private void FileInputStreamdome(File file)
{
	try {
		FileInputStream in=new FileInputStream(file);
		InputStreamReader reader = new InputStreamReader (in,"UTF-8"); 
//这句,下面也做出相应的改动
		int date=0;
		String msg="";
		while((date=reader.read())!=-1)
		{
			msg+=(char)date;
		}
	reader.close();
	in.close();
		setTextView(msg);
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
 

 

文件字符流

运行结果如下,没有乱码 

 



 //文件字符输入流
private void FileReaderdome(File file)
{
	try {
		FileReader reader=new FileReader(file);
		int date=0;
		String msg="";
		while ((date=reader.read())!=-1)
		{
			msg+=(char)date;
		}
		reader.close();
		setTextView(msg);
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

}
//文件字符输出流
private void  FileWritedome(File file)
{
	try {
		FileWriter writer=new FileWriter(file);
		writer.write("我爱看银魂");
		writer.close();
	
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}
  

最后本次在介绍 数据流这个在android读写二进制数据中常用

 

构造方法

DataInputStream (InputStream in)数据输入流DataOutputStream(OutputStream out)数据输出流,可见数据流要和文件字节流合用

上代码

//数据输入流
private void DataInputStreamdome(File file)
{
	try {
		FileInputStream in=new FileInputStream(file);
		DataInputStream datain=new DataInputStream(in);
		String msg=datain.readUTF();
		datain.close();
		in.close();
		setTextView(msg);
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
	
	
	}
//数据输出流
private void DataOutputStreamdome(File file)
{
	try {
		FileOutputStream out=new FileOutputStream(file);
		DataOutputStream dateout=new DataOutputStream(out);
		dateout.writeUTF("dota all star玩家");
		dateout.close();
		out.close();
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}
 



 这次先到这里,IO操作太多,下次继续

 

  • 大小: 11.6 KB
  • 大小: 2.9 KB
  • 大小: 7.1 KB
  • 大小: 14.1 KB
分享到:
评论

相关推荐

    Android文件IO操作

    Android对文件的输入输出操作,IO操作

    android的IO流读写文件demo.zip_DEMO_android_android的IO流读写文件操作

    android的IO流读写文件操作示意程序

    sd卡操作和IO操作存文件

    android 平台,文件存入手机或者SD卡,用到IO操作等技术。

    Android的文件存储

    Android的文件操作都是通过流的方式进行的,即IO。Android的文件操作跟Java是一样的,文件操作分为输入流(InputStream)和输出流(OutputStream),输入流用于获取文件数据,输出流用于存储文件。 详细介绍请参考...

    FileIO.rar_FileIo_andriod driver_android_android 文件_android 读

    android 下的文件读写操作源码,可供入门学习

    彻底明白 Java 语言中的IO系统

    彻底明白 Java 语言中的IO系统 彻底明白 Java 语言中的IO系统

    Android的数据操作和特殊IO

    Android的数据操作和特殊IO,希望对大家有所帮助、

    Android Studio 配置忽略文件的方法实现

    操作步骤 打开Android Studio中的File下的Settings 选中Version Control下的Ignored Files 添加对应的需要忽略的文件 Ignore Unversioned Files下有三种忽略文件方式 Ignore specified file 忽略指定文件 ...

    Android 应用层控制GPIO实现方案(例子:控制风扇开关 上/下拉GPIO脚)

    git.diff 文件,包含功能实现的所有提交。(Android 9.0) 0基础也能实现Android 控GPIO 包含:编写控制GPIO脚本,内置到系统,在rc中创建运行脚本的服务,通过系统属性触发,添加selinux权限。 自行编写Android...

    Android学习之文件存储读取

    前言 相信大家都知道知道,在AndroidOS中,提供了五中数据存储方式,分别是:ContentProvider存储、文件存储、SharedPreference...我们在学Java的时候都知道,Java中的IO操作来进行文件的保存和读取,Android是基于Linu

    plus.io的各种使用

    Android 10系统开始 进一步增强了平台功能,为外部存储设备上的应用和用户数据提供了更好的保护。作为这项工作的一部分,平台引入了进一步的改进,以简化向分区存储的转换,让用户更好地控制自己的文件,保护用户...

    Android 文件操作详解及简单实例

    所以如果对Java的io文件操作比较熟悉的话,android的文件操作就是小菜一碟了。好了,话不多说,开始今天的正题吧。 先从一个小项目入门吧 首先是一个布局文件,这一点比较的简单,那就直接上代码吧。 &lt;...

    android xml文件操作

    xml文件操作 public class XmlUtils { /** * 获取Document对象。根据xml文件的名字获取Document对象。 * * @param file * 要获取对象的xml文件全路径。 * @return 返回获取到的Document对象。 * @...

    Android中文件读写(输入流和输出流)操作小结

    字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,字符流就可以。 (2).字节流转换成字符流可以用InputStreamReader,OutputStreamWriter。 一般我们在使用的时候通常用字节流。 3. 文件读写的...

    直接用于在android系统下运行的iozone可执行文件

    直接用于在android系统下运行的iozone可执行文件。使用方法: 1.将下载的iozone文件通过ADB拷贝到android平台的/data下. 2.进入/data下,执行iozone文件,如:./iozone -t 2 -s 3m -r 50k -F test1.txt test2.txt -...

    Android 文件流

    Java 和Android 开发中文件流的操作

    基于Android的各种基础操作

    进行了Android的各种基础操作,包括Activity测试,文件读写,single Touch、MultiTouch、KeyListener、Acceleration(重力)检测等,开发初级必备。

    实例详解Android文件存储数据方式

    下面通过本文给大家介绍Android文件存储数据方式。 1.文件存储数据使用了Java中的IO操作来进行文件的保存和读取,只不过Android在Context类中封装好了输入流和输出流的获取方法。 创建的存储文件保存在/data/data/...

    Android驱动开发权威指南

    14.2为Android开发虚拟驱动virtualio 14.3 Android集成C程序访问virtualio 14.4 Android通过HAL访问virtualio 14.4.1 virtualio HAL模块实现 14.4.2实现访问virtualio HAL模块JN 14.4.3在Framework层增加virtualio...

Global site tag (gtag.js) - Google Analytics