最近在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 blocke.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 blocke.printStackTrace();}}//文件字符输出流private void  FileWritedome(File file){try {FileWriter writer=new FileWriter(file);writer.write("我爱看银魂");writer.close();} catch (Exception e) {// TODO Auto-generated catch blocke.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 blocke.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 blocke.printStackTrace();}}



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

更多相关文章

  1. Android(安卓)上的 Chrome 终于,即将,就要,支持文件上传(input type=
  2. Android(安卓)Studio apk打包,keystore.jks文件生成,根据keystore
  3. Android(安卓)如何正确使用我们的图片资源
  4. 【Android】Android中用代码复制文件的大小限制
  5. [Android]反编译查看、修改源码、逆向分析以及二次打包签名
  6. Android中如何通过文件路径判断是否是同一文件
  7. 修改Android中strings.xml文件, 动态改变数据
  8. Android(安卓)Studio官方文档之使用Lint提高你的代码质量篇
  9. 关于android app相关破解技术

随机推荐

  1. 安卓布局
  2. [Android各版本特性]Android(安卓)7.0 No
  3. 刚刚接触Android,写第一个Hello world 小
  4. Android自学笔记(番外篇):全面搭建Linux环境
  5. android布局属性预览
  6. android 环境的搭建
  7. Android实现文件夹目录选择器
  8. Android(安卓)showDialog时报错requestFe
  9. android之写文件到sd卡
  10. android Java 笔试考题