【java程序设计基础第十章总结】java语言的输入输出与文件处理

  • 按照啊数据的传输方向,流可分为输入流与输出流。从流的内容划分,流分为字节流和字符流。

  • 当一个缓冲流写入数据时,系统将数据发送到缓冲区,而不是发送到外部设备。等缓冲区满时,系统就会将数据全部发送到相应的外部设备。

  • 当从一个缓冲流中读取读取数据时,系统实际上是从缓冲区中读取数据

  • 根据输入输出数据类型的不同,按照处理数据的类型分-可分为① 字节流 ② 字符流。字节流每次读取8位二进制数,只能按照二进制的原始方式读写。而字符流一次读取16位二进制数,并将其作为一个字符。

【java程序设计基础第十章总结】java语言的输入输出与文件处理_第1张图片

  • 输入输出流
    ·字节流:处理字节数据(基本类型为InputStream,OutputStream)
    ·字符流:处理字符数据(基本类型为Reader,Writer)

  • write()方法所写的数据并没有直接传到外设,而是暂时存放到流的缓冲区中,等到缓冲区满的时候再执行一次向外设的写操作把它们全部写到外设上,这样处理可以降低计算机对外设的读写次数,提高系统效率。可以使用flush()方法强制清空缓存区

【java程序设计基础第十章总结】java语言的输入输出与文件处理_第2张图片

  • 文件的输入输出流FileInputStream和FileOutputStream是InputStream和OutputStream的直接子类,如果指定文件找不到则抛出FileNotFoundException异常。执行read()和write()方法可能还会因为 I/O错误抛出IOException异常

  • 顺序输入流类SequenceInputStream是InputStream的直接子类,可以将多个输入流顺序连接在一起。

  • 管道字节输入流PipedInputStream和管道字节输出流PipedOutputStream类分别是InputStream和OutputStream的直接子类。管道输入流是管道的接收端,管道输出流是管道的发送端。

  • 过滤字节输入流FileterInputStream和过滤字节输出流类FileOutputStream是InputStream和OutputStream的直接子类,同时又分别派生出数据输入流类DataInputStream和数据输出流类DataOutputStream。这两个类就是按照基本数据类型进行读写的。

  • 标准输入输出System.in ,System.out, System.err都是在java源程序编译时被自动装载

  • 标准输入System.in是BufferedInputStream类的对象,其read()方法时从键盘缓冲区读入一个字节的二进制数据,返回以此字节为低位字节,高位字节为0的整型数据

  • System.in.read()语句应包含在try块中,且try块后面要有一个接收IOException异常的catch块。

  • System.out是打印输出流PrintStream类的对象,而PrintStream类是过滤字节输出流类FilterOutputStream类的一个子类。标准错误输出System.err也是由其派生的。

【java程序设计基础第十章总结】java语言的输入输出与文件处理_第3张图片

处理字符

  • 文件字符输入流类Filereader继承自InputStreamReader类,而InputStreamReader类又是继承自Reader。所以Reader类与InputStreamReader类所提供的方法均可供FileReader类所创建的对象使用。FileWriter类也是同理。

  • java将每个汉字和英文字母均作为一个字符对待,但是把Enter键生成的回车换行符“\r\n”作为两个字符。

  • 缓冲字符输入流类BufferedReader继承自Reader类,在使用BufferedReader类来读取缓冲区中的数据之前,必须先创建FileReader类的对象,再以该对象为参数来创建BufferedReader类的对象。BufferedWriter类也是同理。不一样的是,缓冲区内的数据最后必须要用flush()方法将缓冲区清空,也就是将缓冲区中的数据全部写到文件内。
    【java程序设计基础第十章总结】java语言的输入输出与文件处理_第4张图片

  • 在java.io包内定义了File类专门用来管理磁盘文件和文件夹,而不负责数据的输入输出。

  • File类的一个静态变量File.separator。该属性中保存了当前系统规定的文件夹分隔符。

  • 随机访问文件类RandomAccessFile可以实现对文件的随机读写,其也是在java.io包中定义的。

  • RandomAccessFile类的所有方法都有可能抛出IOException异常,所以要用try-catch语句处理

你可能感兴趣的:(java程序设计基础复习)