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

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)操作是不可或缺的一部分,它涉及到数据的存储与读取,对于应用程序的数据持久化至关重要。本文将深入解析Android中的IO操作,涵盖基本概念、常见...

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

    在Android平台上,IO流是进行文件读写操作的基础工具,尤其在处理数据交换、资源保存等方面扮演着重要角色。本文将深入探讨Android中如何利用IO流进行文件的读写操作,以及相关的示例代码。 首先,Android中的IO流...

    五,Android文件IO详解

    总的来说,Android文件I/O涵盖了很多方面,从基础的文件操作到高级的存储策略,都需要开发者根据实际需求灵活运用。理解这些知识点,能帮助我们更好地管理和操作Android设备上的文件,提高应用的稳定性和用户体验。

    Android对IO进行读写操作实例

    在Android开发中,I/O(Input/Output)操作是至关重要的,它涉及到应用程序与外部存储设备如文件系统、网络或内存等之间的数据交互。本文将深入探讨如何在Android平台上进行文件的读写操作,帮助开发者理解和实践...

    文件流IO,android文件流

    三、Android文件流 1. Android中,由于安全和权限问题,文件操作通常需要在特定的上下文中进行,例如在Activity或Service中。使用Context的openFileInput()和openFileOutput()方法可以方便地读写内部存储的文件。 ...

    五,Android文件IO详解.doc

    以下是一些关于Android文件IO的关键知识点: 1. **Java IO流的概念**: Java IO流分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流处理单字节的数据,如InputStream和OutputStream是字节流...

    android direct IO.rar

    在Android系统中,直接I/O(Direct IO)是一种优化数据传输效率的技术,它允许应用程序绕过操作系统的缓冲区,直接与磁盘设备进行交互。这种技术对于需要高性能、低延迟的场景,如数据库、文件系统或者媒体处理等,...

    android io 下载图片

    内存缓存避免频繁的IO操作,而磁盘缓存则防止内存不足时丢失数据。 - 对于Volley和Glide,它们都内置了缓存机制,开发者可以根据需要配置缓存大小和策略。 5. **异步处理**: - 图片下载应在后台线程进行,避免...

    uniapp文件选择(android)

    而“plus”是DCloud(即DCloud移动云服务)提供的一个API库,用于增强uniAPP在原生环境下的功能,其中包括了IO操作。 在Android 12及以下版本,uniAPP可以通过调用`plus.io`模块的相关API来实现文件选择。Android...

    Android IO

    在Android系统中,I/O(Input/Output)操作是应用程序与设备之间交换数据的基础。Android提供了多种I/O机制,使得开发者能够有效地读写文件、处理流数据以及与网络通信。以下将详细介绍Android I/O操作的相关知识点...

    android文件系统浏览器

    实现Android文件系统浏览器的关键在于权限管理和文件I/O操作。由于Android的安全模型,应用程序通常只能访问自己的数据目录,除非获取了相应的权限。因此,文件浏览器需在AndroidManifest.xml中声明读写外部存储的...

    android开发之文件操作——文件创建和文件读取

    在Android中,文件操作主要通过java.io包下的类来实现,如File、FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等。以下将详细介绍文件操作的主要步骤和相关知识点: 1. **文件创建**: - ...

    sd卡操作和IO操作存文件

    在Android平台上,对SD卡进行操作以及执行IO(Input/Output)操作来存储文件是开发者经常需要面对的任务。本文将详细讲解如何在Android系统中进行这些操作,包括文件的创建、读取、写入和删除,以及如何适当地管理SD...

    android 数据IO流实例

    本实例主要关注如何在Android平台上使用IO流进行数据操作,特别是与文件相关的操作。 在Android中,IO流主要用于文件的读写,例如保存应用程序中的数据,如用户配置、游戏进度、图片或音频文件等。以下是一些关键的...

    android文件操作

    以下是对"android文件操作"这一主题的详细阐述。 首先,Android系统为开发者提供了丰富的API来处理文件,主要通过java.io和java.nio包中的类实现。例如,`File`类用于表示文件或目录的路径,`FileReader`和`...

    Android文件系统全面讲解

    在这个“Android文件系统全面讲解”的主题中,我们将深入探讨Android文件系统的结构、操作方式以及如何在应用程序中有效地使用文件。 1. **文件系统的层次结构** Android文件系统采用Linux标准的目录结构,根目录...

    Android安卓使用iosocket进行Socket通信简单封装优雅写代码

    `io.socket`库是Android开发者常用来实现WebSocket和TCP/IP Socket通信的一个优秀框架,它提供了一种优雅的方式来处理网络连接。本文将详细介绍如何使用`io.socket`进行Socket通信的简单封装,以便在迭代开发中提高...

    Android文件管理器源码

    总的来说,这个自定义的Android文件管理器源码涵盖了文件操作的基本功能,通过解析和学习,开发者可以了解Android文件操作的实现细节,提高自己的编程技能。同时,这也为定制化文件管理器提供了参考,开发者可以根据...

    FileIO.rar_FileIo_andriod driver_android_android 文件_android 读

    总的来说,Android文件操作涵盖了基本的Java I/O操作,以及针对移动设备特性的高级API。理解这些概念对于开发Android应用至关重要,特别是在处理数据存储和交换时。同时,对驱动程序的理解有助于优化系统的性能和...

Global site tag (gtag.js) - Google Analytics