目录
1.初认Java I/O
IO,即in和out,也就是输入和输出,指应用程序和外部设备之间的数据传递。
Java 中是通过流处理I/O 的,那么什么是流?
流(Stream),是指一连串的数据(字符或字节),是以先进先出的方式发送信息的通道。
当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。
一般来说关于流的特性有下面几点:
先进先出:最先写入输出流的数据最先被输入流读取到。
顺序存取:可以一个接一个地往流中写入一串字节,读出时也将按写入顺序读取一串字节,不能随机访问中间的数据。
只读或只写:每个流只能是输入流或输出流的一种,不能同时具备两个功能,输入流只能进行读操作,对输出流只能进行写操作。在一个数据传输通道中,如果既要写入数据,又要读取数据,则要分别提供两个流。
1.1Java I/O流的分类
I/O流的分类分为三种:
1.按流向划分:输入流和输出流
2.按处理单元划分:字节流和字符流
3.按流的角色划分:节点流和处理流
1.输入流和输出流
输入与输出是相对于程序,读取文件是输入流,书写文件是输出流,两者容易混淆。
2.字符流和字节流
字节流和字符流操作几乎一样,区别在于字节流以8位字节为操作数据单元,操作二进制数据,字符流以16位字节为操作数据单元,操作文本数据。
3.节点流和处理流
节点流:也称为包装流:可以直接向一个特定的存储介质(如磁盘、文件)读写数据的流。使用节点流进行读写数据操作时,程序直接连接到数据源
处理流:对已存在的流进行连接和封装,通过封装后的流实现数据读写操作的流。使用处理流进行读写操作时,程序并不会直接连接到实际的数据源
2.I/O流对象
2.1 File类
File类是java.io包下代表操作与平台无关的文件和目录的类,用于实现对文件或目录的新建、删除、重命名等操作。
File file=new File("D:\\test.txt"//填写物理文件路径);
//在填写路径在文件名与文件名之间必须有两个反斜杠'\'
//第一个反斜杠'\'表示反编译
这是创建文件对象,在之后通过文件对象的方法,来操作文件或目录的属性(路径、权限、日期和时间等)
File类的常用方法
方法 | 描述 |
boolean createNewFile() | 创建新文件 |
boolean delete() | 删除文件 |
boolean exists() | 判断文件是否存在 |
Boolean isFile() | 判断是否是文件 |
boolean isDirectory() | 判断是否是目录 |
long length() | 返回文件长度,单位为字节 若文件不存在,则返回0L |
String getPath() | 返回此对象文件名所对应的路径 |
String getAbsolutePath() | 返回此对象表示的文件的绝对路径名 |
常用方法示例