java 20 - 4 IO流概述和一个简单例子解析

IO流的分类:
  

 流向:

    输入流 读取数据
     输出流 写出数据
  

数据类型:
     字节流
        字节输入流 读取数据 InputStream
        字节输出流 写出数据 OutputStream
     字符流
        字符输入流 读取数据 Reader
        字符输出流 写出数据 Writer

注意:一般我们在探讨IO流的时候,如果没有明确说明按哪种分类来说,默认情况下是按照数据类型来分的。

------------------------------------割割割----------------------------------------------------

例子:

  需求:往一个文本文件中输入一句话:"hello,io"

  分析:
   A:这个操作最好是采用字符流来做,但是呢,字符流是在字节流之后才出现的,所以,先试试用字节操作。
   B:由于只是要往文件中写一句话,所以要采用字节输出流。

  

字节输出流操作步骤:
   A:创建字节输出流对象
   B:写数据
   C:释放资源

   
   要想采用字节输出流,首先要创建一个字节输出流对象 
   通过上面的分析后我们知道要使用:OutputStream
   但是通过查看API,我们发现该流对象是一个抽象类,不能实例化。
   所以,我们要找一个具体的子类。
   而我们要找的子类是什么名字的呢?这个时候,很简单,我们回想一下,我们是不是要往文件中写东西。
   文件是哪个单词:File
   然后用的是字节输出流,联起来就是:FileOutputStream
   注意:每种基类的子类都是以父类名作为后缀名。
   字节流: XxxOutputStream
        XxxInputStream
   字符流: XxxReader
        XxxWriter

查看FileOutputStream的构造方法:
     A、FileOutputStream(File file)    

File file = new File("fos.txt");
FileOutputStream fos = new FileOutputStream(file);

     B、FileOutputStream(String name)

FileOutputStream fos = new FileOutputStream("fos.txt");

两个效果一样。所以,倾向于用第二种

创建字节输出流对象了做了几件事情:
   A:调用系统功能去创建文件
   B:创建fos对象
   C:把fos对象指向这个文件

创建了字节输出流对象,接着就要往里面写入想要的字节:

由于"hello,IO"是字符串,而我们现在用的是字节流,所以要把它转成字节后再输出

fos.write("hello,IO".getBytes());
fos.write("java".getBytes());

做完这些,其实字节输出流已经完成,但是,还有最重要的一步要做:

fos.close();

释放资源(很重要)
  关闭此文件输出流并释放与此流有关的所有系统资源。
为什么一定要close()呢?
  A:让流对象变成垃圾,这样就可以被垃圾回收器回收了(若fos没有close,则fos流对象可以继续使用)
  B:通知系统去释放跟该文件相关的资源

时间: 2024-10-13 11:50:33

java 20 - 4 IO流概述和一个简单例子解析的相关文章

用socket.io实现websocket的一个简单例子

http://biyeah.iteye.com/blog/1295196 socket.io的介绍 http://www.cnblogs.com/mazg/p/5467960.html websocket在线测试 http://www.blue-zero.com/WebSocket/

Java基础:IO流之字节流和字符流

1. 流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部文件等. 一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL. 流的方向是重要的,根据流的方向,流可分为两类:输入流和输出流.用户可以从输入流中读取信息,但不能写它.相反,对输出流,只能往输入流写,而不能读它. 实际上,流的源端和目的端可简单地看成是字节的生产者和消费

Java基础之IO流

1.IO流概述 (1)用来处理设备(硬盘,控制台,内存)间的数据. (2)java中对数据的操作都是通过流的方式. (3)java用于操作流的类都在io包中. (4)按照流操作的数据的类型不同:分为字节流和字符流.字符流是为了方便中文的操作而来的. (5)按照流的流向不同分为:输入流,输出流 2.IO流常用基类: (1)字节流 输出字节流:OutputStream:字节写入流抽象类 |--->FileOutputStream: 字节写入流 |--->BufferedOutputStream:

java 基础学习 IO流 学习总结

File类概述和构造方法: File类的概述 文件和目录路径名的抽象表示形式  构造方法 public File(String pathname) public File(String parent,String child) public File(File parent,String child) 创建功能 public boolean createNewFile() public boolean mkdir() public boolean mkdirs() 删除功能 public boo

Java中的IO流(五)

上一篇<Java中的IO流(四)>记录了一下Properties类,此类不属于IO流,它属于集合框架.接下来说一下IO流中的其它流 一,打印流PrintStream PrintStream为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式.并且此注永远不会抛出IOException. 此流的构造函数大致分三类 1,接收File文件类型的 2,接收OutputStream类型的 3,接收文件名形式的 下演示一下此流的两个方法 1 private static void functio

Java中的IO流

Java中的IO流是实现输入/输出的基础. 按照流的方向不同:分为输入流和输出流. 按照处理数据单位的不同:分为字节流(8位)和字符流(16位). 按照功能不同:分为节点流和处理流 所有面向字节的流类都继承于InputStream类(输入流) 或OutputStream类(输出流),这两个类是抽象类,我们可以利用它的子类来完成不同的功能. InputStream.OutputStream都是抽象类 InputStream抽象了应用程序读取数据的方式 OutputStream抽象类应用程序写出数据

JAVA 中的IO流

Java中的IO流是用来处理设备与设备之前的数据传输,在java中以流的形式传输.流分为两类:字节流和字符流. 字节流:InputStream,OutPutSteam.(计算机内的数据都是以字节存储的,字节流可以操作任意数据) 字符流:Reader,Writer.(字符流只能操作字符,但是在实际应用中字符流比较方便) 从操作来看又可以分为:输入流和输出流. 在进行IO流操作的时候分为以下几步:1.导入IO流的包,2.进行IO流的异常处理,3.关闭IO流释放资源. 字节流 ————————————

java基础篇IO流的规律

前两篇降了IO流中的字节流和字符流复制的例子,今天来总结一下IO流的规律 掌握好IO流的规律,再开发中会很好用 下面来总结一下: 1,明确源和目的 源:输入流 InputStream 和Reader 目的:输出流 OutputStream 和Writer 2,操作的数据是否是纯文本. 是:使用字符流 不是:使用字节流 3,当体系明确后,在明确要使用哪个具体的对象,通过设备来进行区分 源设备: 内存,硬盘,键盘 目的设备: 内存,硬盘,控制台 这里的源就是你想进行的操作,比如说你想从c盘复制一个文

Java中的IO流总结

Java中的IO流总结 1. 流的继承关系,以及字节流和字符流. 2. 节点流FileOutputStream和FileInputStream和处理流BufferedInputStream和BufferedOutputStream.以及对应的FileOutputWriter,FileInputReader,BufferedInputReader,BufferedOutputWriter. 3. 转换流InputStreamReader和OutputStreamWriter 一:流的继承关系 字节