二十七、JavaSE----File类、IO类

简介: 二十七、JavaSE----File类、IO类

File类:


       File类是对文件系统中文件以及文件夹进行操作的类,可以通过面向对象的思想操作文件和文件夹。


文件创建操作如下,主要涉及文件创建、删除文件、获取文件描述符等。


12.png


也可以对文件夹进行操作


13.png


上面只是举出来了两个简单的示例,实际上,还有一些其他对文件的操作没有使用。比如创建文件,就可以使用三种方式来创建。


14.png


directoryPath是文件的路径名,filename是文件名,dirObj是一个File对象。例如:


15.png


现在对File类进行总结。


16.png


基于IO类和相关方法


       虽然IO类有很多,但是最基本的是四个抽象类,InputStream 、OutputStream 、Reader、Writer。


       最基本的方法也就是read和write方法,其他流都是上面这四类流的子类,方法也是通过这两类方法衍生而成的。而且大部分的IO源码都是native标志的,也就是说源码都是C/C++写的。 这里我们先来认识一下这些流类及其方法。


InputStream

       InputStream是一个定义了 Java流式字节输入模式的抽象类。该类的所有方法在出错条件下引发一个 lOException异常。它的主要方法定义如下。


17.png


Outputstream

       Outputstream是定义了流式字节输出模式的抽象类。该类的所有方法返回一个void值并且在出错情况 下引发一个lOException异常。它的主要方法定义如下。


18.png


Reader 类

       Reader是Java定义的流式字符输入模式的抽象类。类中的方法在出错时引发 IOException异常。


19.png


Writer 类

       Writer是定义流式字符输出的抽象类。所有该类的方法都返回一个void值并在出错条件下引发 lOException 异常。


20.png


Inputstream及其子类


FileInputStream文件输入流:FilelnputStream类创建一个能从文件读取字节的Inputstream类


ByteArrayInputStream字节数组输入流:把内存中的一个缓冲区作为InputStream使用


PipedInputStream管道输入流:实现了 pipe管道的概念,主要在线程中使用


Sequenceinputstream 顺序输入流:把多个 InputStream 合并为一个 InputStream


FilterOutputStream过滤输入流:其他输入流的包装


ObjectInputStream反序列化输入流:将之前使用ObjectOutputStream序列化的原始数据恢复为对象,以流的方式读取对象


DataInputStream :数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本Java数据类型


PushbackInputStream推回输入流:缓冲的一个新颖的用法是实现推回(pushback)


Pushback用于输入流允许字节被读取然后返回到流


Outputstream及其子类


FileOutputStream文件输出流:该类实现了一个输出流,其数据写入文件


ByteArrayOutputStream字节数组输出流:该类实现了一个输出流,其数据被写入由byte数组充当的缓冲区,缓冲区会随着数据的不断写入而自动增长


PipedOutputStream管道输出流:管道的输出流,是管道的发送端


ObjectOutputStream基本类型输出流:该类将实现了序列化的对象序列化后写入指定地方


FilterOutputStream过滤输出流:其他输出流的包装


PrintStream打印流:通过Printstream可以将文字打印到文件或者网络中去


DataOutputStream :数据输出流允许应用程序以与机器无关方式向底层输出流中写入基本Java数据类型


Reader及其子类


FileReader文件字符输入流:把文件转换为字符流读入


CharArrayReader字符数组输入流:是一个把字符数组作为源的输入流的实现


BufferedReader缓冲区输入流:BufferedReader类从字符输入流中读取文本并缓冲字符,以便有效地读取字符,数组和行


PushbackReader : PushbackReader类允许一个或多个字符被送回输入流


PipedReader管道输入流:主要用途也是在线程间通讯,不过这个可以用来传输字符


Writer及其子类


FileWriter字符输出流:FileWriter创建一个可以写文件的Writer类

CharArrayWriter字符数组输出流:CharArrayWriter实现了以数组作为目标的输出流


BufferedWriter 缓冲区输出流:BufferedWriter是一个增加了 flush()方法的Writer。flush()方法 可以用来确保数据缓冲器确实被写到实际的输出流


PrintWriter : PrintWriter本质上是PrintStream的字符形式的版本


PipedWriter管道输出流:主要用途也是在线程间通讯,不过这个可以用来传输字符


       Java的输入输出的流式接口为复杂而繁重的任务提供了一个简洁的抽象。过滤流类的组合允许动态建立客户端流式接口来配合数据传输要求。继承高级流类InputStream、InputStreamReader、Reader 和Writer类的Java程序在将来(即使创建了新的和改进的具体类)也能得到合理运用。

相关文章
|
8天前
|
存储 编解码 缓存
File类和IO流
File类和IO流
File类和IO流
|
7月前
|
安全 网络协议 Java
Thread类的用法 && 线程安全 && 多线程代码案例 && 文件操作和 IO && 网络原理初识 &&UDP socket
Thread类的用法 && 线程安全 && 多线程代码案例 && 文件操作和 IO && 网络原理初识 &&UDP socket
42 0
|
8月前
|
存储 网络协议 Java
Java中IO流类的体系中BIO与NIO
Java中IO流类的体系中BIO与NIO
66 0
|
8天前
|
分布式计算 Java 大数据
IO流【Java对象的序列化和反序列化、File类在IO中的作用、装饰器模式构建IO流体系、Apache commons-io工具包的使用】(四)-全面详解(学习总结---从入门到深化)
IO流【Java对象的序列化和反序列化、File类在IO中的作用、装饰器模式构建IO流体系、Apache commons-io工具包的使用】(四)-全面详解(学习总结---从入门到深化)
56 0
|
8天前
|
存储 Java
Java的`java.io`包包含多种输入输出类
【5月更文挑战第2天】Java的`java.io`包包含多种输入输出类。此示例展示如何使用`FileInputStream`从`input.txt`读取数据。首先创建`FileInputStream`对象,接着分配一个`byte`数组存储流中的数据。通过`read()`方法读取数据,然后将字节数组转换为字符串打印。最后关闭输入流释放资源。`InputStream`是抽象类,此处使用其子类`FileInputStream`。其他子类如`ByteArrayInputStream`、`ObjectInputStream`和`BufferedInputStream`各有特定用途。
57 1
|
8天前
|
运维 Java Unix
File类和IO流
File类和IO流
41 0
|
8天前
|
Java Maven
由于找不到`io.debezium.connector.common.RelationalBaseSourceConnector`类导致的
由于找不到`io.debezium.connector.common.RelationalBaseSourceConnector`类导致的
46 1
|
5月前
|
Java
【文件IO】 File类的用法和 InputStream OutputStream 的用法
【文件IO】 File类的用法和 InputStream OutputStream 的用法
|
7月前
|
缓存 移动开发 网络协议
TCP编写服务器,客户端以及遇到的两个问题,Socket,ServerScket 类,flush(),方法。以及多线程解决,及改进的线程池写法,IO多路复用的思想,C10K,C10M的阐述。万字超细
TCP编写服务器,客户端以及遇到的两个问题,Socket,ServerScket 类,flush(),方法。以及多线程解决,及改进的线程池写法,IO多路复用的思想,C10K,C10M的阐述。万字超细
|
7月前
|
存储 Java 索引
"Java中的File类、IO基础、IO分类以及字节流的重要性"
"Java中的File类、IO基础、IO分类以及字节流的重要性"
40 0

热门文章

最新文章