`

Java IO流的概念

    博客分类:
  • IO
 
阅读更多
一、 IO 流的三种分类方式
    1. 按流的方向分为:输入流和输出流
    2. 按流的数据单位不同分为:字节流和字符流
    3. 按流的功能不同分为:节点流和处理流
    二、 IO 流的四大抽象类:
    字符流: Reader Writer
    字节流: InputStream (读数据)
    OutputStream (写数据)
    三、 InputStream 的基本方法
    int read () throws IOException 读取一个字节以整数形式返回,如果返回 -1 已到输入流的末尾
    void close () throws IOException 关闭流释放内存资源
    long skip ( long n ) throws IOException 跳过 n 个字节不读
    四、 OutputStream 的基本方法
    void write ( int b ) throws IOException 向输出流写入一个字节数据
    void flush () throws IOException 将输出流中缓冲的数据全部写出到目的地
    五、 Writer 的基本方法
    void write ( int c ) throws IOException 向输出流写入一个字符数据
    void write ( String str ) throws IOException 将一个字符串中的字符写入到输出流
    void write ( String str , int offset , int length )
    将一个字符串从 offset 开始的 length 个字符写入到输出流
    void flush () throws IOException
    将输出流中缓冲的数据全部写出到目的地
    六、 Reader 的基本方法
    int read () throws IOException 读取一个字符以整数形式返回,如果返回 -1 已到输入流的末尾
    七、节点流类型

    八、访问文件之 FileInputStream 和 FileOutputStream 继承基类用于向文件中输入输出字节
    九、访问文件之 FileReader 和 FileWriter 继承基类用于向文件中输入输出字符
---- 输出流在构造函数第二个参数可以设置 true 意义为跟在已有文件后进行输入
---- 此类流会抛出 FileNotFoundException 需要对其进行显示捕捉
十、缓冲流:缓冲流要套接在相应的节点流之上,提高了读写的效率。
  此处理流的构造方法都得传相对应的基类类型
    BufferedReader :提供了 readLine 方法用于高效读取一行字符串
    BufferedWriter :提供了 newLine 用于写入一个行分隔符也就是换行
    BufferedInputStream 没多大用处
    BufferedOutputStream 没多大用处
    十一、转换流:主要作用将字节流转换成字符流。用处较大!
    转换流在构造时可以指定其编码集合
    InputStreamReader 需要和 InputStream 套接
    OutputStreamWriter 需要和 OutputStream 套接
    例: OutputStreamWriter osw = new OutputStreamWriter ( new FileOutputStream (文件路径);
    方法例: osw.getEncoding (); 获得流的编码方式
    十二、数据流与字节数组流:
    数据流主要为实现可以 存取 Java 原 始数据类型如 long , boolean
    数据流是字节流
    DataInputStream 需要和 InputStream 套接
    DataOutputStream 需要和 OutputStream 套接
    DataInputStream 方法: readBoolean () readInt () read…… () ……
    readUTF (): 网络传输 常用方法 读一个 Unicode 字符串
    DataOutputStream 方法与 DataInputStream 基本对应为写的方法        // 此构造函数等于已可以往一个字节数组里输入内容
    ByteArrayOutputStream baos = new ByteArrayOutputStream ();    // 此方法为获取一个字节数组方法返回字节数组
    baos.toByteArray ();    // 此方法获取字节数组占了多少字节
new ByteArrayInputStream (一个字节数组)。 available ()
ByteArrayOutputStream baos =new ByteArrayOutputStream();
       DataOutputStream dos = new DataOutputStream(baos);
      try  {
       dos.writeDouble(Math.random());
       dos.writeBoolean(true);
       ByteArrayInputStream bais =new ByteArrayInputStream(baos.toByteArray());
       System.out.println(bais.available());
       DataInputStream dis = new DataInputStream(bais);
       System.out.println(dis.readDouble());
       System.out.println(dis.readBoolean());
       dos.close();
       dis.close();
      } catch(IOException e){
       e.printStackTrace();
  }
十二、 Print 流
    Print 流只有输出流无输入流, PrintWriter 和 PrintStream 分别针对字符字节
    两个类提供了重载的 Print 和 Println 方法用于多种数据类型的输出
    PrintWriter 和 PrintStream 的输出操作不会抛出异常
    PrintWriter 和 PrintStream 有自动 flush 功能
    ----System.setOut( 接收 OutputStream 类 ): 用于设置系统默认输出流
    十二、 Object 流
    等同于 c# 序列化,用直接将 Object 写入或读出
    transient 关键字为不序列化此成员变量
    需要序列化的类必须实现 Serializable 接口
    主要方法: writeObject ( Object ); readObject ();
    读出为 Object 类型需要强转数据类型
import java.io.*;
  public class TestObjectIO {
     public static void main(String args[]) throws Exception {
         T t = new T();
         t.k = 8;
         FileOutputStream fos = new FileOutputStream("d:/share/java/io/testobjectio.dat");
         ObjectOutputStream oos = new ObjectOutputStream(fos);
         oos.writeObject(t);
         oos.flush();
         oos.close();

         FileInputStream fis = new FileInputStream("d:/share/java/io/testobjectio.dat");
         ObjectInputStream ois = new ObjectInputStream(fis);
         T tReaded = (T)ois.readObject();
         System.out.println(tReaded.i + " " + tReaded.j + " " + tReaded.d + " " + tReaded.k);

     }
  }

  class T implements Serializable
  {
     int i = 10;
     int j = 9;
     double d = 2.3;
     transient int k = 15;
  }
分享到:
评论

相关推荐

    JAVA IO流技术

    4. Java中流的概念细分 流的方向: 输入流:数据源到程序(InputStream、Reader读进来) 输出流:程序到目的地(OutPutStream、Writer写出去) 处理数据单元: 字节流:按照字节读取数据(InputStream、OutputStream)...

    java中的IO流操作大全

    讲述java中IO流的基本概念和java中各种IO流的代码范例。

    java IO流 教程宝典

    JAVA 中为什么提出流的概念? java 中流的分类, 每种流的 简单例子,可以体系的学习 io流

    java IO流 1. 流的概念 2. 输入流和输出流 3. 字符流、字节流 4. 缓冲流 5. 转换流处理流

    java IO流 1. 流的概念 2. 输入流和输出流 3. 字符流、字节流 4. 缓冲流 5. 转换流处理流

    Java的IO流讲解代码: File 类、RandomAccessFile 类、字节流(文件字节流、缓冲字节流、基本数据类型

    此代码资源的目标是提供简单易懂的示例代码,帮助读者深入理解Java IO流的概念和使用方法。通过研究这些代码示例,读者将能够了解如何使用不同类型的IO类来进行文件读写、字符流、字节流、网络传输等各种常见的IO...

    JAVA IO流学习文档

    详细介绍了java SE 中IO流的概念。 并详细介绍了IO 流中的各个对象和用法,是java初学者不可多得的学习资料。

    通俗易懂的javaIO讲解

    简单的介绍了java中关于输入和输出 流的相关概念,通俗易懂。

    JavaIO流详解

    一 流的概念 流(Stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程的通信,或读写外围设备、外部文件等。 一个流,必有源端和目的端,它们可以是计算机内存...

    java之io流学习总结

    java学习之io精辟流总结 ,java中为什么提出流概念?java中的流有什么特点?流都有哪些异常 这里都将一一为你解答。

    java IO输入输出流 学习入门

    java IO输入输出流 学习入门,能快速掌握IO流概念,应用。。对于里面的很多概念很清楚讲解笔记。

    Java之IO流学习总结

    Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据...

    java io包课件

    了解java.io包 运用File类对文件或目录的属性进行操作 理解流,理解输入/输出流的概念 运用FileInputStream类和FileOutputStream类读/写字节文件 运用FileReader类和FileWriter类配合BufferedReader类和...

    Java IO输入输出流

    Java程序对数据的操作是通过“流”IO的方式,IO流用来 处理设备之间的输一局传输(上传和下载文件) 2,流 流是一种有顺序有起点和终点的集合(字节),是对数据传输的一种抽象,它就是为了数据传输。 3,流的分类 ...

    Java IO(输入输出).pptx

    掌握字节流和字符流读写文件的操作 熟悉如何使用File类访问文件系统 了解字节流和字符流的概念,输入输出概念。

    Java输入输出(IO)和流的基本概念-Java教程共2页

    Java输入输出(IO)和流的基本概念_Java教程共2页.pdf.zip

    Java中的IO流(二)字符流的常用操作

    今天带来的是JAVA的IO流中的字符流,Reader和Writer子类流的用法。 基础概念 流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作...

    Java流总结

    流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输 ...Java IO流对象 1.输入字节流InputStreamIO 中输入字节流的继承图可见上图,可以看出:

    免费超全面的Java基础类型,容器,并发,IO流,面向对象,Web编程等代码总结

    Java基础类型,容器,并发,IO流,面向对象,Web编程等代码总结。 2、分类文档 JVM虚拟机 JVM特点,结构与执行周期 JVM类加载机制 JVM运行时区数据 JVM执行引擎和垃圾回收 基础语法 理解Java中对象基础Object类 ...

    JAVAIO操作CAI

    JAVA输入输出流课件,本课件详细讲述了JAVA中输入输出流的概念、分类以及常用的字节流字符流的用法;还讲述了如何使用File类来进行文件和目录操作。

Global site tag (gtag.js) - Google Analytics