Java中的File类与IO流(IO概述,File类,字节流,字符流,转换流,流的操作规律,其他常用流)

IO概述

    为了实现数据的持久化,需要把内存中的数据存储到内存以外的其他持久化设备(硬盘、光盘、U盘等)上。
    当需要把内存中的数据存储到持久化设备上,这个行为称作输出(写)Output操作。

    当把持久化设备上的数据读取内存中的这个行为称作输入(读)Input操作。

    因此我们把这种输入和输出行为称为IO操作。

    想把Java程序操作完的数据保存硬盘等持久化设备上,这时需要把这些数据通过JVM,调用操作系统底层的读写技术才能把数据保存 在持久设备上,同样的如果我们要从持久设备上读取数据,也要借助操作系统底层。而Java是面向对象的语言,它把这些操作和系统底层的相关的命令已经给我们封装成相应的对象,我们需要读写操作时,找到对应的对象即可完成。

IO流

    IO:I/O,Input/Output,输入/输出。
    这是根据流向来进行描述的方式,究竟是输入还是输出,站在内存的角度看待问题所有从其他设备到内存的过程,称为“输入”;所有从内存到其他设备的过程,称为“输出”。
    java中操作输入输出使用的都是流对象,都是在io包中的类。

File类

    在我们操作系统中,数据都保存在文件中,而文件存放相应的文件夹中。
    在Java中,File类代表的是File文件和目录路径名的抽象表示形式。

  1. File:翻译是文件,用于表达java中的路径名。
  2. 路径:用于表示文件或者文件夹在当前系统中的位置
  3. 路径的分类:
    绝对路径:没有任何的歧义,也没有任何的前提条件,Windows,从盘符开始的路径,例如"D:/a/b/c/d/a.txt"。
    相对路径:相对于某个文件的路径。

     Java中把文件或者目录(文件夹)都封装成File对象。也就是说如果我们要去操作硬盘上的文件,或者文件夹只要找到File这个类即可。

File类的构造函数和分隔符

File类会自动甄别文件系统路径Linux/Windows;

关联了一个相对路径的文件(特殊:对于当前的IDEA/Eclipse而言 相对路径获取的文件都在项目根目录下):

File f1 = new File("haha.txt");
System.out.println(f1.exists()); //项目根目录下的haha.txt文件
File f4 = new File("C:\\Users\\HENG\\Desktop\\YD_Java\\src\\Chapter11\\haha.txt");
System.out.println(f4.exists()); //和此类同目录的haha.txt文件

关联了一个绝对路径的文件

File f2 = new File("C:\\Users\\HENG\\haha.txt");

如果此路径是Linux的文件路径 / 根目录(因为Linux/Unix/Windows/MAC这些操作系统中 路径分割符是不统一的)

File f3 = new File("/haha/xixi/lala");
File f5 = new File("C:\\Users\\HENG\\Desktop\\YD_Java\\src\\Chapter11","haha.txt");
System.out.println(f5.exists());
File parent = new File("C:\\Users\\HENG\\Desktop\\YD_Java\\src\\Chapter11");
File f6 = new File(parent,"haha.txt");
System.out.println(f6.exists());

当我们不确定程序所运行的系统环境 如果需要用到文件路径 路径分割符采用File自带的separator

String parentPath = "C:\\Users\\HENG\\Desktop\\YD_Java\\src\\Chapter11";
File f7 = new File(parentPath + File.separator + "haha.txt");
System.out.println(f7.exists());

File类的获取相关

文件和文件夹的创建

文件和文件夹的删除

子文件与文件过滤器

获取文件夹全部内容

删除文件夹全部内容

字节流与字符流

OutputStream

InputSteam

复制文件操作

复制文件夹操作

复制文件夹操作+过滤

BufferedInputStream与BufferedOutputStream

字节流与编码

InputStreamReader

OutputStreamWriter

FileReader

FileWriter

BufferedReader与BufferedWriter

流的操作规律

批量复制文本文件

文件切割与合并

练习

Properties

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值