`
T240178168
  • 浏览: 366362 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

IO流概述

    博客分类:
  • java
阅读更多
一、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;
}
分享到:
评论

相关推荐

    607.605.JAVA基础教程_IO流与网络编程-复习:IO流概述(607).rar

    本教程主要针对IO流的概述进行复习,帮助学习者理解和掌握这一关键概念。 1. 字节流:字节流处理的是单个字节的数据,包括InputStream和OutputStream家族。InputStream用于读取数据,如 FileInputStream 用于读取...

    java基础之IO流

    #### 一、IO流概述 - **定义**:在Java中,IO流(Input/Output Streams)是用来处理输入输出的基本工具。流是一种有序的数据集合,通常涉及从源到目的地的数据传输过程。源可以是文件、键盘输入、网络连接等;而...

    io流写的远程通讯

    一、Java IO流概述 Java的IO流系统分为两大类:字节流和字符流。字节流处理的是8位的字节,而字符流处理的是16位的Unicode字符。它们又细分为输入流(Input Stream)和输出流(Output Stream),分别用于数据的读取...

    文档JAVA-IO流

    #### 一、IO流概述 1. **什么是IO** - I代表**输入**(input),O代表**输出**(output)。在Java中,所有负责输入输出的类都位于`java.io`包内。这些类主要用于进行数据的输入输出操作。 2. **流的分类** - 按照...

    Java-IO流基础例题 & 例题源码 & PPT教学文档(黑马程序员详细版).rar

    一、Java IO流概述 Java IO流分为字节流和字符流两大类,字节流处理的是8位的字节数据,而字符流处理的是16位的Unicode字符。字节流又分为输入流(InputStream)和输出流(OutputStream),字符流则有Reader和Writer...

    javaio流电子书整理面试必考io流帮助你入职阿里腾讯

    **二、IO流概述** IO流可以理解为数据的流动通道,从数据源(如键盘、文件)到数据目的地(如显示器、文件)。按照不同的分类标准,IO流可以分为以下几类: 1. **按流向分**:可分为输入流(Input Stream)和输出...

    JAVA中的IO流简介

    ### IO流概述 IO流主要分为两大类:字节流和字符流。字节流主要处理字节数据,而字符流则处理字符数据。这两种流类型都有输入和输出之分,分别由以下接口和类表示: - 字节流: - 输入:`InputStream` - 输出:`...

    JAVA IO流详解

    #### 一、Java IO流概述 Java IO流是Java程序与外部设备之间进行数据交互的重要方式之一。Java的核心库`java.io`提供了丰富的接口用于实现文件读写、标准设备输入输出等功能。Java IO流的设计基于流的概念,即数据...

    java IO 流详细分析

    #### 一、Java IO流概述 在Java中,输入/输出(Input/Output,简称IO)操作是程序与外部设备进行数据交换的重要方式。Java提供了丰富的API来支持各种类型的IO操作,包括文件读写、网络通信等。本文将对Java中的IO流...

    IO笔记.zip关于javaIO流部分的详细笔记

    一、Java IO流概述 Java IO流分为四个主要类别:字节流(Byte Stream)、字符流(Character Stream)、对象流(Object Stream)和文件流(File Stream)。字节流处理单个字节的数据,字符流处理Unicode字符,对象流...

    java IO流学习笔记

    #### 五、IO流概述 在Java中,IO流用于处理输入/输出操作。根据数据单位的不同,可以分为字节流和字符流两大类。 - **字节流**:处理的数据单位是字节(8位),包括`InputStream`和`OutputStream`。 - **字符流**...

    java_io 流介绍

    #### 一、Java IO 流概述 Java IO(Input/Output)流是Java中用于处理输入输出操作的核心组件之一。它主要用于处理数据的读写操作,包括从文件、网络等来源读取数据以及将数据写入文件、网络等目的地。Java中的IO流...

    java Io流总结(毕向东)

    #### 一、Java IO流概述及概念 **毕向东**老师是一位经验丰富的Java讲师,以其通俗易懂的教学风格受到广大学员的喜爱。在其分享的《Java Io流总结》文档中,详细介绍了Java IO流的基础概念、分类、特性以及常见异常...

    javaIO流笔记

    #### 一、Java IO流概述 在Java中,输入/输出(Input/Output,简称IO)操作是程序与外部设备进行数据交换的重要方式。Java提供了强大的IO流处理类库,主要位于`java.io`包中。这些类库支持多种数据类型的操作,包括...

    IO流的总结

    #### 一、IO流概述 在计算机科学中,输入输出(Input/Output,简称I/O)是指计算机系统与外部环境之间的数据交互过程。在Java编程语言中,I/O流是一种非常重要的机制,用于实现数据的读取和写入。Java提供了丰富的...

    java的IO流操作

    #### 一、Java IO流概述 在Java中,输入/输出(Input/Output,简称IO)流是进行数据读写的基础技术。Java的IO流主要包含两大类:字节流(byte stream)和字符流(character stream)。字节流主要处理二进制数据,如...

    Java中的IO流类详解

    #### 一、IO流概述 **IO流**是指在Java中用于处理设备间数据传输的技术。这里的“设备”既包括外围设备(如硬盘、U盘、光盘、移动硬盘、打印机、屏幕和键盘等),也涵盖了内存。所有的数据最终都存储在这些设备上。...

    java——IO流技术.pdf

    #### 一、IO流概述 在Java编程中,**IO流**(Input/Output Stream)主要用于实现数据的输入与输出操作。无论是文件读写、网络通信还是程序间的交互,几乎所有的数据交换都依赖于IO流。 ##### 1.1 流的概念 - **流**:...

Global site tag (gtag.js) - Google Analytics