Java教程

Java输入输出流

本文主要是介绍Java输入输出流,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.基础概念

  • 流:一组有序的数据结构,将数据从一个地方带到另一个地方。根据数据流向的不同,可以分为输入流和输出流。
  • Java程序通过流完成输入/输出,所有的输入/输出都以流的形式处理。(数据流是Java进行I/O操作的对象)
  1. 按照流的方向主要分为输入流和输出流两大类。
  2. 数据流按照数据单位的不同分为字节流和字符流。
  3. 按照功能可以划分为节点流和处理流。

数据流处理流程

  • 数据流的处理只能按照数据序列的顺序来进行,即前一个数据处理完之后才可处理后一个数据。
  • 数据流以输入流的形式被程序获取,再以输出流的形式输出到其他设备。
    输入/输出流模式如下:
    image

Java流相关的类都封装在java.io包中,且每个数据流都是一个对象。

1-输入流

  • 所有输入流都是InputStream抽象类(字节输入流)和Reader抽象类(字符输入流)的子类。

InputStream类的层次结构及常用方法如下:
image

image

2-输出流

  • 所有输出流类都是OutputStream抽象类(字节输出流)和Writer抽象类(字符输出流)的子类。

OutputStream类的层次结构及常用方法:
image

image

注:从本质上来讲,写数据(即输出)的时候,字节也好,字符也好,本质上都是没有标识符的,需要去指定编码方式。但读数据的时候,如果我们需要去“看数据”,那么字节流的数据需要指定字符编码方式,这样我们才能看到我们能识别的字符(否则乱码);而字符流,因为已经选择好了字符编码方式,通常不需要再改了

2.Java系统流

  • Java程序运行时自带有一个系统流(对应类java.lang.System)。该类封装了Java程序运行时的三个系统流(作用域为public和static):
  1. System.in:标准输入流,默认设备为键盘
  2. System.out:标准输出流,默认设备为控制台。
  3. System.err:标准错误流,默认设备是控制台。

3.Java File(文件操作类)

  • File类是Java.io包中唯一代表磁盘文件本身的对象(File类不能访问文件内容本身,需使用输入/输出流访问)

File类的三种构造方法:

  1. File(String path):path可为目录/文件,File对象标识的就是目录/文件
  2. File(String path, String name):path是路径,name是文件名
  3. File(File dir, String name):dir是路径对象,name是文件名

File类两个常用常量如下:

  1. public static final String pathSeparator:分隔连续多个路径字符串的分隔符(win下为;)
  2. public static final String separator:分隔同意路径字符串中的目录(win下为/)
    注:win中文件目录D:\xxx\xx,Java中使用时\应为/或\

File类常用方法如下:image

通过遍历目录可以在指定的目录中查找文件或显示所有文件列表,有如下两种重载形式

  1. String[] list() 返回File对象表示目录中所有文件和子目录名称的字符串数组(null)
  2. String[] list(FilenameFilter filter) 返回数组中仅包含filter过滤器的文件和目录(null则接受所有名称)
这篇关于Java输入输出流的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!