美文网首页
JavaSE学习笔记——IO流

JavaSE学习笔记——IO流

作者: funOfFan | 来源:发表于2020-02-26 14:05 被阅读0次
  • java.io包

    1. File类:Java程序中的一个对象,对应着硬盘中的一个文件或者网络中的一个资源。
    File file = new File("d:\\io\\hello.txt");
    File content = new File("d:\\io");
    
    1. File类对象,既可以表示一个文件(.doc.xls.mp3.avi),也可以表示一个目录.
    2. File类的对象是与平台无关的.
    3. File类针对于文件或者目录.只能进行新建 删除 重命名等操作,
      如果涉及到访问文件内容,File无法操作,必须使用IO流下相应的输入输出流实现.
    4. 通常File类对象会作为形参传递到输入输出流的构造器中去.
  • IO流的结构

    1. 基本结构

      类型 字节输入流 字节输出流 字符输入流 字符输出流
      抽象基类 InputStream OutputStream Reader Writer
      访问文件 FileInputStream FileOutputStream FileReader FileWriter
      访问数组 ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWriter
      访问管道 PipedInputStream PipiedOutputStream PipedReader PipedWriter
      访问字符串 null null StringReader StringWriter
      缓冲流 BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter
      转换流 null null InputStreamReader OutputStreamWriter
      对象流 ObjectInputStream ObjectOutputStram null null
      打印流 null PrintStream null PrintWriter
    2. IO流的划分

      • 按照流的流向的不同:输入、输出(自己立足于程序的角度)
      • 按照流中的数据单位的不同:字节流、字符流(纯文本文件使用字符流、除此以外使用字节流)
      • 按照流的作用方式的不同:节点流、处理流(流直接作用于文件的是节点流,4个节点流之外均为处理流)
  • 基本读写的实现

    抽象基类 节点流(文件流) 缓冲流(处理流的一种)
    InputStream FileInputStream(int read(byte[] b)) BufferedInputStream
    OutputStream FileOutputStream(void write(b,0,len)) BufferedOutputStream(flush)
    Reader FileReader(int read(char[] c)) BufferedReader(readLine())
    Writer FileWriter(void write(c,0,len)) BufferedWriter(flush())
    1. 从硬盘中读入一个文件要求此文件必须是存在的,若不存在,报异常FileNotFoundException
    2. 从程序中输出一个内容到硬盘,此文件可以不存在,若不存在会自动创建。
    3. 实际使用的时候,更建议使用缓冲流来代替节点流或者文件流
    4. 注意要关闭相应的流,一般来说,先关闭输出流,再关闭输入流,关闭操作放入finally中
  • 其他类型的流

    1. 转换流:实现字节流于与字符流之间的转换
    //InputStreamReader;输入时,实现字节流到字符流的转换,提高操作效率(注意,数据是文本文件),此为解码
    //OutputStreamReader:输出时,实现字符流到字节流的转换,此为编码。
    
    1. 标准的输入/输出流:System.in/System.out
    System.in:The "standard" input stream;从键盘输入数据
    System.out:The "standard" output stream;从显示器输出数据
    
    1. 打印流(都是输出流)PrintSteam(处理字节) PrintWriter(处理字符)
    PrintStream p = new PrintStream(new FileOutputStream(new File("hello.txt"), true))
    System.setOut(PrintStream p)//重新设置一下输出位置
    
    1. 数据流(处理基本数据类型、String类、字节数组)
    DataInputStream 
    DataOutputStream
    
    1. 对象流
    //对象的序列化机制:允许将内存中的Java对象转换成平台无关的二进制流,
    //  从而将这种二进制流持久地保存在磁盘上,或通过网络发送出去。
    //创建输出流对象,将类对象写入
    ObjectOutputStream oos = new ObjectOutputStream(new File("Person.txt"));
    oos.writeObject(Object obj);
    //创建输入流对象,还原出类对象
    ObjectInputStream ois = new ObjectInputStream(new File("Person.txt"));
    ois.readObject(Object obj);
    
      实现序列化机制的对象对应的类的要求:
          类要实现Serialiable接口、类的所有属性也必须实现Serialiable接口、
          给类提供一个版本序列号:private static final long serialVersionUID
          属性声明为static或者transient的不可以实现序列化
    
    1. 随机存取文件流(RandomAccessFile)
      • 构造方法如下,既可以充当输入流,也可以充当输出流
      public RandomAccessFile(File file, String mode);
      /* 其中mode的取值如下所示:
      * r:以只读方式打开
      * rw:打开以便读取和写入
      * rwd:打开以便读取和写入;同步文件内容的更新
      * rws:打开以便读取和写入;同步文件内容和元数据的更新
      */
      public RandomAccessFile(String name, String mode);
      
      • 支持从文件的开头读取、写入;若输出的文件不存在,直接创建;若输出文件存在,则是对原文件内容的覆盖
      • 支持从任意位置的“插入”

相关文章

  • JavaSE学习笔记——IO流

    java.io包File类:Java程序中的一个对象,对应着硬盘中的一个文件或者网络中的一个资源。File fil...

  • JavaSE笔记-IO流

    Java中常见的IO流有关的类有如下: 字节流 InputStream 字节输入流的基类(抽象) OutputSt...

  • javaSe-IO流

    为什么称为流?所有数据对于计算机来说都是以细化的小单位存储的,所以让他们一起输入输出就像流水一样,一股数据才是一个...

  • JavaSE 基础学习之五 —— IO 操作 (java. io

    接上篇《JavaSE 基础学习之四 —— 异常的处理》 五. JavaSE 基础学习 —— IO 操作 (java...

  • javase part21 IO流

    在计算机中文件的分类 二进制文件文本文件 在java中流的分类 字节流:操作二进制文件字符流: 操作文本文件 流:...

  • JavaSE总结(9)IO流(1)

    一、IO流: IO流: input输入(流向内存) 读取数据 output输出(流出内存) 写出数据 IO...

  • JavaSE总结(10)IO流(2)

    一、java.io.BufferedOutputStream extends OutputStream 字节输出缓...

  • JavaSE进阶九 IO流二

    File类 File类和四大家族没有关系,所以File类不能完成文件的读和写。 File对象代表什么?文件和目录路...

  • JavaSE进阶九 IO流一

    1,IO流的概述 IO流,什么是IO? I:Input O:Output 通过IO可以完成硬盘文件的读和写。...

  • JavaSE进阶-06-IO流

    1.什么是IO流? 答:文件的输入和输出  将文件放入内存的过程叫输入(Input)也称为读(Read),输入过程...

网友评论

      本文标题:JavaSE学习笔记——IO流

      本文链接:https://www.haomeiwen.com/subject/lqcvchtx.html