Java之IO流操作

转载 2012年03月21日 16:50:29

http://blog.csdn.net/xiang_j2ee/article/details/6792572


通过全面几期对Android的入门级了解,感知若要想学好Android,不单单需要对Android运行机制和开发技巧融会贯通,Java基础也是必不可少的,由于工作上比较少用到IO流这块,之前接触的一点点也忘记了,所以近期很有必要花点时间复习了一下,下面对其做些总结。

       我认为:IO流在整个Java体系中其开发包是比较复杂的,也是一个难点,想要跨过此道门槛,必须要对面向对象的概念非常熟悉,而且要对抽象类非常了解。引用李老师的话,IO流的核心是:根据实例化子类的不同,完成的功能也不同。其实就是多态。

       1、File类

       File类是与文件操作有关的类,如创建、删除等操作。其构造方法是public File(String pathname),可以看出,若要生成一个File对象,必须指定路径,看下图代码:

       需要注意的是:不同操作系统路径之间的斜杠也不同,如windows系统是\\,而liunx是//,为了更好的跨平台,此处最好使用file类提供的API,file.separator,它会自动判断当前机子是属于哪类操作系统,从而动态的返回斜杠。至于还有很多有关file类的操作,我们可以根据文档来合理的使用,如:file.isFile();//判断是否是文件,file.isDirectory();//判断是否是目录等等。

       下面来看个有关File操作范例:列出一个指定文件夹中的所有内容。

 

想要显示其路径则可以使用file.listFiles();

 

       2、字节流和字符流

       通过上来的例子可以知道,File只是与文件有关的操作,其并不能对文件的内容进行操作,如果要对文件内容进行操作,就需要通过使用字节流和字符流来完成,但不管是哪一种操作,都有其固定的操作顺序:

       ·使用File类找到文件

       ·通过字节流或字符流的子类进行对象的实例化

       ·进行读、写操作

       ·关闭字节流或字符流

       

       注意:由于流是属于资源性的操作,所以一定要通过关闭来释放资源。

       操作流有以下几个:字节流 InputStream OutputStream     字符流 Writer Reader

      

       2.1、字节输出流(OutputStream)

   此类定义如下:public abstract class OutputStream extends Object implements Closeable, Flushable

       由于是个抽象类,根据面向对象的概念,必须由子类对其进行实例化操作。其方法如下:

 

 void close()  关闭此输出流并释放与此流有关的所有系统资源。
 void flush()  刷新此输出流并强制写出所有缓冲的输出字节。
 void write(byte[] b)b.length 个字节从指定的字节数组写入此输出流。
 void write(byte[] b, int off, int len)  将指定字节数组中从偏移量off 开始的len 个字节写入此输出流。
abstract  void write(int b)  将指定的字节写入此输出流。

      下面范例使用OutputStream向路径D:\file\test.txt输出Hello World!!!

            此代码每执行一次都会覆盖掉之前的内容,如果不想将其覆盖掉,则在实例化时候可以调用另外一个构造方法

new FileOutputStream(file,true)即可。若要换行则可以在字符串中输入\r\n,形如:“\r\nHello World!!!”,试试看。

 

       2.2、字节输入流(InputStream)

       此类定义如下:public abstract class InputStream extendsObject implementsCloseable

       显然,它也需要通过子类对其进行实例化操作,其常用操作方法有:

abstract  int read()  从输入流读取下一个数据字节。
 int read(byte[] b)  从输入流中读取一定数量的字节并将其存储在缓冲区数组b 中。
 int read(byte[] b, int off, int len) 将输入流中最多len 个数据字节读入字节数组。

       下面使用InputStream从路径D:\file\test.txt读出内容。

        

 

       3.1、字符输出流(Writer)

       此类定义如下:public abstract class Writer extendsObject implementsAppendable,Closeable,Flushable

       显然,它也需要通过子类对其进行实例化操作,其常用操作方法有:

       范例:使用Writer向文件输出内容:

       

       由此可以发现,我们无法操作的java的API,非常轻松实现了对文件的操作,所以下面Reader类就不再写,感兴趣的可以自己去练习,下面对字节流和字符流做一个比较:

       字节流和字符流在其代码结构上是有很多相似处,但其内部本身是有区别的,其中最大的区别在于字符流在操作的时候会使用到缓冲区,而字节流不会用到。

       在使用字节流OutputStream向外输出时,若最后不关闭流,也可以向外输出,但是若采用字符流Writer向外输出时不关闭流,则肯定不会输出消息,因为内容都存放在缓冲区处,显然,当调用了close()时,意味着清空缓存。



java IO流操作详解源代码下载

  • 2015年03月15日 17:06
  • 48KB
  • 下载

java 文件操作及IO流

  • 2011年12月12日 18:27
  • 12KB
  • 下载

03_java基础_IO流和文件操作

------- android培训、java培训、.net培训、 IOS培训 期待与您交流! ---------- File类的介绍 直接继承自Object,是文件和目录路径名的抽象表示 封装目...

Java IO流操作

  • 2016年06月16日 16:10
  • 11KB
  • 下载

--IO流和文件操作--java学习日记8(基础知识)

IO流分为字符流和字节流两种,当要操作的对象时纯文本文件时,可以用字符流FileReader,要进一步提高效率可用BufferedReader包装一下。比如要拷贝一个文本文件,可以创建一个输入流: ...
  • qq_1991
  • qq_1991
  • 2014年07月18日 15:33
  • 699

java中的IO流操作大全

  • 2013年07月25日 13:37
  • 830KB
  • 下载

java 的IO流操作

  • 2010年07月13日 19:27
  • 3KB
  • 下载

Java IO _数据操作流

1、掌握DataOutputStream 和 DataInputStream 的作用 2、可以使用DataOutputStream 和 DataInputStream 写入的读取数据 如果...

java的IO流操作

  • 2012年06月04日 23:54
  • 7KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java之IO流操作
举报原因:
原因补充:

(最多只允许输入30个字)