文章目录
前言
少说话,多做事
以下是本篇文章正文内容,下面案例可供参考
一、文件【File】的基本操作
由于涉及到文件【File】的知识点很少也非常简单,我就直接上案例了 里面有具体的注释,今天的重点是I/O流。 案例如下:
import java.io.File;
import java.text.SimpleDateFormat;
public class Test01 {
public static void main(String[] args) {
File file=new File("C:\\Users\\雍仲\\Desktop\\编码王子的宝库.txt");
System.out.println("获取绝对路径:"+file.getAbsolutePath());
System.out.println("获取文件名字:"+file.getName());
System.out.println("该文件是否可读:"+file.canRead());
System.out.println("该文件是否可写:"+file.canWrite());
System.out.println("是否隐藏:"+file.isHidden());
System.out.println("获取文件长度(字节):"+file.length());
System.out.println("判断是否为文件:"+ file.isFile());
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("最后修改的时间:"+sdf.format(file.lastModified()));
File file = new File("test.txt");
System.out.println("获取绝对路径:" + file.getAbsolutePath());
}
}
文件的层级遍历与创建文件
import java.io.File;
import java.io.IOException;
public class Test03 {
public static void main(String[] args) throws IOException {
File file = new File("file01\\file02\\file03\\test.txt");
File parentFile = file.getParentFile();
if(!parentFile.exists()){
parentFile.mkdirs();
}
if(!file.exists()){
file.createNewFile();
}
}
}
二、I/O流部分
(1)、什么是I/O流
概念图:
I: InputStream:是所有输入流的基类,是一个抽象类。 O:OutputStream:是所有输出流的基类,同样也是一个抽象类 流:一种比较抽象的概念,类似于水管,由于数据的传入与传出是一点一点地输出,类似于将水库中的水通过水管一点一点地送到家里,最后关闭水龙头(在流的操作中最后一步需要用.close方法来关闭流对象就类似于关水龙头)
注意:此处所说的输入流与输出流是站在程序的角度上来看,从程序往外输出便是输出流(OutputStream),同理如果是从外向程序里输入数据便是输入流(InputStream)。
理解图:
(2)、流的分类
2.1 按单位分:
- 字节流:以字节为单位,可以读写所有数据
- 字符流:以字符为单位,只能读写文本数据
2.2 按功能分:
- 节点流:具有实际传输数据的读写功能
- 过滤流:再借点流的基础上增强功能
2.3按方向分:
- 输入流:将<存储设备>中的内容读入到<内存>中。
- 输出流:将<内存>中的内容写入到<存储设备>中。
三、流的详解
(1)字节流:
(2)字节节点流
2.1 FileOutputStream(底层继承于OutputStream):
public void write(byte [ ] b)//一次性写多少个字节,将数组 b 中所有字节写入到输出流。后面有案例
2.2 FileInputStream (底层继承于InputStream):
public int read(byte [ ] b) //从流中读取多个字节,将读到的内容存入b数组,返回实际独到的字节数;如果达到文件的尾部,则返回 -1.后面案例演示
案例演示:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Copy02 {
public static void main(String[] args) throws IOException {
FileInputStream fis=new FileInputStream("io.txt");
FileOutputStream fos=new FileOutputStream("copyio02.txt");
byte [] bs = new byte[1024];
int len;
while ((len=fis.read(bs))!=-1){
fos.write(bs,0,len);
}
fis.close();
fos.close();
}
}
(3)字节过滤流
3.1缓冲流:BufferedOutputStream/BufferedInputStream
提高IO效率,减少访问磁盘的次数 数据存储于缓冲区中,flush是将缓冲区的内容写入文件中,也可以直接close。
3.2对象流:ObjectOutputStream/ObjectInputStream
特点; 1、增强了缓冲区的功能 2、增强了读写的8种基本数据类型和字符串功能 3、增强了读写对象的功能: 例如: ------------ 1、readObject()从流中读取一个对象 -------------2、writeObject(Object obj) 向流中写入一个对象
总结
更新中…勿催
|