JavaSE基础(day18)(1)File类 (2)I/O流

版权声明:cxyo.cn https://blog.csdn.net/weixin_44075537/article/details/85002163

默写:
1.简答题
写出常见的5种异常,要求英文名称和中文名称。

2.简答题
写出异常捕获的语法格式以及执行流程。

3.编程题
自定义年龄异常类即可。

今天内容:
(1)File类
(2)I/O流

1.File类(重点)
1.1 基本概念
java.io.File类用于描述文件和目录的路径信息,可以获取文件的大小等属性信息。

1.2 常用的方法
File(String pathname) - 用于根据参数指定的路径名来构造对象。
boolean exists() - 用于判断调用对象所代表的文件或目录是否存在。
String getName() - 用于获取调用对象所代表的文件或目录的名称。
long length() - 用于获取文件的长度/大小。
String getAbsolutePath() - 用于获取抽象路径名的绝对路径信息并返回。
绝对路径 - 主要指从根目录开始的路径。如:C:/ D:/ …
相对路径 - 主要指从当前目录开始的路径。如:.代表当前目录 …代表上一级目录
- 以后的开发中推荐采用相对路径。
long lastModified() - 用于获取最后一次修改时间。
- 用于返回距离1970年1月1日0时0分0秒的毫秒数,与Date类中构造搭配使用.
boolean delete() - 用于删除调用对象代表的文件或目录。
boolean createNewFile() - 用于创建新的空文件。

File[] listFiles() - 用于获取调用对象所关联目录中的所有内容。
boolean isFile() - 用于判断是否为一个文件。
boolean isDirectory() - 用于判断是否为一个目录。

2.I/O流
2.1 基本概念
I/O就是Input/Output的简写,也就是输入/输出的含义。
I/O流就是指像流水一样不间断地进行读写的过程。

按照读写单位的不同分为:字节流 和 字符流。
字节流 - 主要指以字节为单位进行读写的流,可以用于任何文件的读写操作。
字符流 - 主要指以字符(2字节)为单位进行读写的流,只能用于文本文件的读写操作
按照数据流动方向的不同分为:输入流 和 输出流(站在程序的角度)。
输入流 - 主要指读取文件中的内容输入到程序中,也就是读文件。
输出流 - 主要指将程序中的数据输出到文件中,也就是写文件。

2.2 I/O流的层次结构
字节流的顶层类有:InputStream类 和 OutputStream类。
其中InputStream类的主要实现子类:
FileInputStream类、DataInputStream类(间接子类)、ObjectInputStream类。
其中OutputStream类的主要实现子类:
FileOutputStream类、DataOutputStream类(间接子类)、ObjectOutputStream类。

字符流的顶层类有:Reader类 和 Writer类。
其中Reader类的主要实现子类有:
BufferedReader类、InputStreamReader类、StringReader类。
其中Writer类的主要实现子类有:
BufferedWriter类、OutputStreamWriter类、StringWriter类。
补充:
java.io.PrintStream类是OutputStream类间接子类,通常与BufferedReader搭配使用
2.3 FileOutputStream类(重中之重)
(1)基本概念
java.io.FileOutputStream类用于将图像数据之类的原始字节流写入输出流中。

(2)常用的方法
FileOutputStream(String name) - 根据参数指定的路径名来构造对象并关联起来。
FileOutputStream(String name, boolean append) - 以追加的方式构造对象。
void write(int b) - 用于将参数指定的单个字节写入输出流。
void write(byte[] b) - 用于将参数指定的字节数组内容全部写入输出流中。
void write(byte[] b, int off, int len) - 用于将数组中一部分内容写入输出流。
void close() - 关闭输出流并释放有关的资源.

2.4 FileInputStream类(重中之重)
(1)基本概念
java.io.FileInputStream类用于读取图像之类的原始字节流。

(2)常用的方法
FileInputStream(String name) - 根据参数指定的路径名来构造对象与之关联。
int read() - 用于从输入流中读取一个字节的数据并返回,若读取到文件尾则返回-1
int read(byte[] b) - 用于从输入流中读满整个参数指定的数组。
- 若读取到文件尾则返回-1,否则返回实际读取到的字节数。
int read(byte[] b, int off, int len) - 读取len个字节到数组b中。
int available() - 用于获取调用对象所关联文件的大小并返回。
void close() - 关闭输入流并释放资源。

2.5 DataOutputStream类(熟悉)
(1)基本概念
java.io.DataOutputStream类用于将java语言中基本数据类型的数据写入到输出流中

(2)常用的方法
DataOutputStream(OutputStream out) - 根据参数指定的引用来构造对象。
- 其中OutputStream类是个抽象类,因此实参需要传递子类的对象。
void writeInt(int v) - 用于将参数指定的整数数据写入到输出流中。
void close()

2.6 DataInputStream类(熟悉)
(1)基本概念
java.io.DataInputStream类用于从输入流中读取基本数据类型的数据内容。

(2)常用的方法
DataInputStream(InputStream in) - 根据参数指定的引用来构造对象。
- 其中InputStream类是个抽象类,因此实参需要传递子类的对象。
int readInt() - 用于从输入流中读取一个整数并返回。
void close()

2.7 BufferedReader类(重点)
(1)基本概念
java.io.BufferedReader类用于读取单个字符、字符数组以及一行字符串的场合。

(2)常用的方法
BufferedReader(Reader in) - 根据参数指定的引用来构造对象。
- 其中Reader类是个抽象类,实参需要传递子类的对象。
String readLine() - 用于读取一行字符串内容并返回。
void close()

2.8 PrintStream类(重点)
(1)基本概念
java.io.PrintStream类是用于打印各种数据类型的数据内容。

(2)常用的方法
PrintStream(OutputStream out) - 根据参数指定的引用构造对象。
- 其中OutputStream类是个抽象类,实参需要传递子类的对象。
void println(String x) - 用于打印字符串并换行。
void close()

视频
javaseday18-File类的概念和使用-01
https://v.qq.com/txp/iframe/player.html?vid=s0799ctgzvh
javaseday18-IO流和文件输入输出流-02
https://v.qq.com/txp/iframe/player.html?vid=q0799tco25f
javaseday18-文件输出流的使用-03
https://v.qq.com/txp/iframe/player.html?vid=m07993g1myw
javaseday18-文件输入流的使用文件的拷贝-04
https://v.qq.com/txp/iframe/player.html?vid=e0799p14iwi
javaseday18-数据输入出流使用字符输入流-05
https://v.qq.com/txp/iframe/player.html?vid=p0799zjaxrb

代码
https://pan.baidu.com/s/16UpHsWLwYiB_Latf5h0MmQ

作业:
1.自定义方法打印指定目录中的所有内容,要求子目录中的内容也要打印出来。
参考代码:
void printDir(File f){
编写打印目录和文件的代码,在main()方法中调用此方法。
}
2.画出所学的类之间的框架图并掌握。
3.自定义类使用PrintStream类向文件c:/a.txt中写入字符串"hello"。
自定义类使用BufferedReader类从文件c:/a.txt中读取内容并打印出来。

猜你喜欢

转载自blog.csdn.net/weixin_44075537/article/details/85002163