Java IO (流)
-
什么IO?
IO在计算机中指Input/Output,也就是输入和输出
-
流是干什么的?
在 Java 中所有数据都是使用流读写的。流是一组有序的数据序列,将数据从一个地方带到另一个地方
: 在计算机操作系统中有哪几类文件?
分为两类
文件夹 创建文件夹 mkdir() mkdirs()
文件 创建文件 createNewFile()
文件和文件夹有什么不一样的?
文件有后缀名 .txt .jpg
文件夹没有后缀名
-
文件File
-
文件File的构造方法?
-
File(String path):如果 path 是实际存在的路径,则该 File 对象表示的是目录;如果 path 是文件名,则该 File 对象表示的是文件。
-
File(String path, String name):path 是路径名,name 是文件名。
-
File(File dir, String name):dir 是路径对象,name 是文件名
-
-
-
-
文件File常用的方法?
String getAbsolutePath()
返回由该对象表示的文件的绝对路径名
String getName()
返回表示当前对象的文件名或路径名
-
创建文件
d:\\abc\\5.txt
优化: 创建文件
d:\\abc\\5.txt 首先判断 abc是否存在,如果存在,则不创建文件夹,而是在此文件夹下创建文件 如果abc不存在,创建文件夹,再在此文件夹下创建文件
-
常用的流
为什么要用流?
可以从不同的角度对流进行分类:
-
处理的数据单位不同,可分为:字符流,字节流
2.数据流方向不同,可分为:输入流,输出流
3.功能不同,可分为:节点流,处理流
流分为几类
字节流
字节输入流 字节输出流
字符流
字符输入流 字符
字节输入流
InputStream 类及其子类的对象表示字节输入流,InputStream 类的常用子类如下。
- ByteArrayInputStream 类:将字节数组转换为字节输入流,从中读取字节。
- FileInputStream 类:从文件中读取数据。
- PipedInputStream 类:连接到一个 PipedOutputStream(管道输出流)。
- SequenceInputStream 类:将多个字节输入流串联成一个字节输入流。
- ObjectInputStream 类:将对象反序列化
字节输出流
OutputStream 类及其子类的对象表示一个字节输出流。OutputStream 类的常用子类如下。
- ByteArrayOutputStream 类:向内存缓冲区的字节数组中写数据。
- FileOutputStream 类:向文件中写数据。
- PipedOutputStream 类:连接到一个 PipedlntputStream(管道输入流)。
- ObjectOutputStream 类:将对象序列化。
-
字符输入流
Reader 类是所有字符流输入类的父类,该类定义了许多方法,这些方法对所有子类都是有效的。
Reader 类的常用子类如下。 - CharArrayReader 类:将字符数组转换为字符输入流,从中读取字符。
- StringReader 类:将字符串转换为字符输入流,从中读取字符。
- BufferedReader 类:为其他字符输入流提供读缓冲区。
- PipedReader 类:连接到一个 PipedWriter。
- InputStreamReader 类:将字节输入流转换为字符输入流,可以指定字符编码。
-
字符输出流
与 Reader 类相反,Writer 类是所有字符输出流的父类,该类中有许多方法,这些方法对继承该类的所有子类都是有效的。
Writer 类的常用子类如下。 - CharArrayWriter 类:向内存缓冲区的字符数组写数据。
- StringWriter 类:向内存缓冲区的字符串(StringBuffer)写数据。
- BufferedWriter 类:为其他字符输出流提供写缓冲区。
- PipedWriter 类:连接到一个 PipedReader。
- OutputStreamReader 类:将字节输出流转换为字符输出流,可以指定字符编码。